AIを活用してプロジェクトのコードベースを分析し、ファイル構造とファイルの説明を生成するPythonスクリプトです。
このスクリプトは、指定されたフォルダ内のファイルを解析し、以下の機能を提供します:
- プロジェクトのファイル構造をMarkdownのツリー形式で表示
- テキストファイルの内容をAI(Claude)を使用して分析し、各ファイルの説明を生成
- .gitignoreに基づいてファイルを除外
- .projectignoreファイル・フォルダを使用して追加のファイル除外を管理
- バイナリファイルや空のファイルを自動的に除外
- 特定の拡張子を持つファイルを除外するオプション
- 実行時間の計測と表示
-
必要なライブラリをインストールします:
pip install -r requirements.txt
-
環境変数に
ANTHROPIC_API_KEY
を設定します:- Linuxまたは macOS の場合:
export ANTHROPIC_API_KEY=your_api_key_here
- Windows の場合:
- コマンドプロンプトの場合:
set ANTHROPIC_API_KEY=your_api_key_here
- PowerShell の場合:
$env:ANTHROPIC_API_KEY = "your_api_key_here"
- コマンドプロンプトの場合:
- Linuxまたは macOS の場合:
-
まず、dry-runモードでスクリプトを実行して.projectignoreファイルを作成します:
python main.py /path/to/your/project --dry-run
-
必要に応じて.projectignoreファイルを編集します。
-
本実行を行います:
python main.py /path/to/your/project
--exclude
: 除外する拡張子のリストを指定(例:--exclude jpg png
)--prompt
: カスタムプロンプトテンプレートを指定--dry-run
: .projectignoreファイルの作成と対象ファイルのリスト出力のみを行う
-
dry-runの実行:
python main.py /path/to/your/project --dry-run
-
特定の拡張子を除外して本実行:
python main.py /path/to/your/project --exclude jpg png
スクリプトは以下の形式でMarkdownファイルを生成します:
- プロジェクト構造(# Project Structure)
- .gitignoreで除外されたファイルは表示されません
- .projectignoreで除外されたファイルはツリー構造には表示されますが、AIによるファイル説明は実行されません
- ファイルの説明(# File Descriptions)
- 各ファイルに対して:
- ファイルの説明(## File Description)
- インポートされているモジュール(### Imported Modules)
- 定義されている関数(### Functions)
- 各ファイルに対して:
sample.md は tegnike/aituber-kit(v1.24.1) の実行結果です。
- 対象ファイル数: 75
- 出力結果行数: 1,828
- 実行時間: 507.00 秒
- API費用: $0.77
- このスクリプトはAnthropicのClaudeモデル(claude-3-5-sonnet-20240620)を使用します。適切なAPI使用料金が発生する可能性があります。
- 大規模なプロジェクトの場合、処理に時間がかかる可能性があります。
- テキストファイルのエンコーディングによっては、正しく読み取れない場合があります。
- スクリプトの実行時間が表示されます。
- 必ず最初にdry-runを実行して.projectignoreファイルを作成してください。
このプロジェクトはMITライセンスの下で公開されています。詳細は LICENSE ファイルを参照してください。
AIキャラクターと対話したり、Youtube配信できるWebアプリを開発中です(tegnike/aituber-kit)