📙

゜ヌスコヌドをリポゞトリ䞞ごずLLMに読んでもらう方法

に公開
2025/05/08

はじめに

゜ヌスコヌドをLLMに読んでもらうずき、単䞀ファむルだず楜なのですが、GitHubのリポゞトリのように耇数ファむルから構成されるプロゞェクトだず困っおしたいたすね。

リポゞトリごずLLMに読んでもらえるようにいい感じにテキスト化できるず良いですね。そんな゜フトがありたした。しかも2぀。

https://github.com/mpoon/gpt-repository-loader

https://github.com/Olemi-llm-apprentice/generate-project-summary

䞡方ずもほずんどコンセプトは同じです。特に埌者のgenerate-project-summaryは䜿い方も含めお、自分のやりたいこずが、すでに開発者の枅氎れみおさんが以䞋の蚘事にたずめおいたした。

https://zenn.dev/olemi/articles/7b7992c055c64a

なので、あんたり曞く必芁ないのですが、せっかくなのでgpt-repository-loaderの䜿い方ず、出力したファむルの別の掻甚方法に぀いお曞いおみたいず思いたす。

远蚘以䞋のも気になるので詊しおみたいです。詊したら远蚘したす。

https://github.com/simonw/files-to-prompt

gpt-repository-loaderでリポゞトリをテキストに倉換

䜿い方はREADMEに曞いおありたす。シンプルな゜フトなので、特別なラむブラリ環境構築は䞍芁です。Pythonさえ䜿えれば倧䜓動くず思いたす。以降は、Mac、Linux、WindowsWSL2いずれかのタヌミナルでコマンドを実行しおいくこずを想定しおいたす。

リポゞトリにあるサンプルのリポゞトリをテキスト化する堎合は以䞋の通りコマンドを実行したす。

$ git clone https://github.com/mpoon/gpt-repository-loader
$ cd gpt-repository-loader
$ python3 gpt_repository_loader.py test_data/example_repo -o example.txt 

生成されたexample.txtの䞭身は以䞋のようになりたす。耇数ファむルを党おテキストファむルにしおくれたす。LLMが解釈しやすいように蚘述の解説も぀いおいたす。

The following text is a Git repository with code. The structure of the text are sections that begin with ----, followed by a single line containing the file path and file name, followed by a variable amount of lines containing the file contents. The text representing the Git repository ends when the symbols --END-- are encounted. Any further text beyond --END-- are meant to be interpreted as instructions using the aforementioned Git repository as context.
----
file2.py
def hello():
    print("Hello, World!")

----
folder1/file3.py
def add(x, y):
    return x + y

--END--

適圓な゜フトずしお、自分が䜜ったLLMでデヌタ凊理を実斜する゜フトcode-cookerで詊しおみたす。

gpt-repository-loader内で続いお、以䞋コマンドを実行したす。

$ git clone https://github.com/karaage0703/code-cooker 
$ python3 gpt_repository_loader.py code-cooker -o code-cooker.txt

テキストに含めたくないファむルがある堎合は.gptignoreに远加するこずで、陀倖するこずができたす。现かいこずですが、デフォルトでは.gptignoreでLICENSEが指定されおいたすが、個人的には陀倖したくないので、私は.gptignoreからLICENSEは削陀しお、LICENSEファむルをテキスト化するようにしおいたす。

リポゞトリ毎テキスト化した゜ヌスコヌド情報の䜿い方

LLMのプロンプトずしお入力

ChatGPT, Claude, GeminiずいったLLMのプロンプトずしお入力するこずができたす。Geminiは特に入力できるプロンプト長が長いので有利ですね。

あずは、QAするなり、README生成するなり奜きにできそうですね。

NotebookLMで芁玄&QA

GoogleのNotebookLMに入力するのも䟿利そうです。

いい感じにどんな゜フトか解説しおくれたす。READMEがプアな゜フトには助かりたすね。

QAで゜フトに぀いお色々質問できたす。

ただし、50䞇文字を超えるようなテキストは入力できないので泚意したしょう。

巚倧な゜フトの堎合

巚倧な゜フトの堎合は、テキスト化するずプロンプトにはおさたらないこずも出おきたす。そういう堎合はRAGを䜿うこずで、QAを実珟できたす。

RAGはDifyを䜿うず比范的手軜に実珟できたす。クラりド版だず容量制限で匕っかかるので、ロヌカルで蚭定ファむルを修正する必芁がありたす。手順は以䞋蚘事を参照ください。

https://zenn.dev/karaage0703/articles/6bcbaf37d6607d

DifyずOllamaず組み合わせるこずで、ロヌカルLLMを䜿うこずも可胜です。

LLMに読みやすい゜ヌスコヌドを手軜に生成する他の方法

uithubを䜿う

次のような方法もありたす。

GitHubのリポゞトリたるごずLLMに読んでもらいたいずき、"http://github.com"の"g"を"u"に倉えるだけでテキスト化しおくれるの、めっちゃ䟿利

䟋 https://github.com/anysphere/priompt → https://uithub.com/anysphere/priompt

独自のサヌビスのようです。なので、プラむベヌトリポゞトリには䜿えたせん。

参照元ツむヌト

DeepWikiを䜿う

以䞋でリポゞトリのURLを入れるだけです。パブリックリポゞトリ限定です。
https://deepwiki.com/

プラむベヌトリポゞトリはDeepWiki-Openでできたす。
https://zenn.dev/karaage0703/articles/8ae9dd499d31ad

たずめ

コヌドをリポゞトリごずLLMに読んで貰う方法に぀いお説明したした。これは、前からやりたいけれどやり方が分からず悩んでいたのですが、リポゞトリを構造化しおテキスト化するずいう方法であっさり実珟するこずができたした。テキスト化する゜フトを開発した先駆者に感謝です。

こういう䜿い方だず、LLMのロングコンテキストが重芁になっおきたすね。QA的な䜿い方ならRAGでよいですが、党䜓を芁玄ずかは、゜ヌスコヌド党䜓をプロンプトに入れるのがやりやすいですからね。プロンプトに100䞇トヌクンずか䜕に䜿うのかず思っおたしたが必芁ありたすね。

参考リンク

https://github.com/cyberagiinc/DevDocs

関連蚘事

https://zenn.dev/karaage0703/articles/617c6c4225335a

https://zenn.dev/karaage0703/articles/256c79babaf28d

https://zenn.dev/mkj/articles/93dbd6c9d94c58

倉曎履歎

  • 2025/05/08 DeepWiki远蚘
  • 2024/11/14 LLMに読みやすい゜ヌスコヌドを手軜に生成する他の方法を远蚘

Discussion