はじめに
ChatGPTにリポジトリの中身を理解してもらうためのツールを作成してました。コードの要約を作ってマークダウンファイルに出力します。このマークダウンファイルをカスタムGPTに読み込ませると、リポジトリの使い方やアプリケーションの作り方などをChatGPTが答えてくれるようになります。
リポジトリ
このスクリプトは こちら で公開されています。
カスタムGPTの事例
要約結果を活用するサンプルとして、Graphaiというリポジトリに対してこのスクリプトで要約作成し、カスタムGPTを生成しました。 GraphaiのカスタムGPT からご覧いただけます。
目的
このスクリプトの目的は、ChatGPTがリポジトリの全体像を迅速に把握できるよう、各ファイルの要点を自動的に生成し、リポジトリ内容を簡潔にまとめることです。生成されたMarkdownファイルを確認することで、リポジトリの構造や各ファイルの役割をChatGPTが理解できるようになります。
スクリプトの機能
- リポジトリ内のファイルを再帰的に探索し、対象のファイルを収集
- 各ファイルをChatGPT APIで要約し、内容のポイントを抽出
- 各ファイルごとの要約をMarkdown形式で出力
環境
このスクリプトの実行には以下の環境が必要です:
- Python 3.x
- OpenAIのPythonクライアントライブラリのインストール
pip install openai argparse
また、OpenAI APIキーを取得し、スクリプトに適用する必要があります。APIキーは OPENAI_API_KEY の環境変数に設定してください。
スクリプトの使い方
1. スクリプトの準備
スクリプトを任意のフォルダに配置し、実行可能な状態にします。
2. コマンドライン引数でリポジトリパスを指定
このスクリプトは、コマンドライン引数で対象リポジトリのパスを指定する仕様になっています。argparse
ライブラリを使用し、ユーザーがリポジトリのパスを引数として渡せるように設定されています。
python summarize_repo.py /path/to/your/repository
3. スクリプトの実行と結果の確認
指定したリポジトリ内のファイルを再帰的に探索し、ファイルの要約が repo_summary.md
にMarkdown形式で出力されます。このファイルには各ファイルの相対パスと、ChatGPTが生成した要約がまとめられています。ファイル数が多いと時間がかかります。
4. 生成ファイルの活用
生成された repo_summary.md
は、ChatGPTがプロジェクトの概要を把握してカスタムGPTとして使うために利用できます。例えばGraphaiのカスタムGPTのように、リポジトリを解析するモデルを作成し、プロジェクトの要点をクイックアクセスできる環境を構築することも可能です。
注意点
-
APIのコスト: ChatGPT APIの利用にはコストが発生します。大規模なリポジトリを要約する際には、API使用量が多くなる可能性があるため、注意が必要です。
-
要約内容の確認: AIによる要約のため、内容が完全に正確とは限りません。必要に応じて手動で修正・補足することをお勧めします。
まとめ
このスクリプトは、ChatGPT APIを活用してリポジトリ内のファイルを効率的に要約し、プロジェクトの概要を素早く理解できるようにする強力なツールです。特に新しいコードベースに迅速にキャッチアップする必要がある場合に有用です。