見出し画像

フォルダをわずか数秒でLLMの知識に変換する方法

3,298 文字

コードベース全体をLLMの知識、つまりLLMのコンテキストウィンドウに収まるLLMプロンプトに変換する最も簡単な方法について説明します。多くのウェブサイトがドキュメントの一部としてlm.txtと呼ばれるものを提供し始めていますが、これはドキュメントにしか使えず、コードベース全体には対応していません。この動画では、code to promptというツールを使って、コードベース全体をLLMプロンプトとして提供する方法をお見せします。Google Geminiのような長いコンテキストウィンドウを持つモデルを使っている場合、これは非常に役立ちます。
単体テストケースやドキュメントなど、コードベースでやりたいことは何でもできます。GitHubリポジトリを取得してLLMテキストに変換し、LLMに送信して質問する方法の全プロセスをお見せします。まず、code to promptというRustベースのツールを使います。インストールにはRustが必要です。Rustがすでにある場合は、cargoからインストールできます。
ターミナルを開いて、cargo install code to promptと入力します。これにより、このライブラリがcrates.ioからインストールされます。インストール中に、LLMテキストに変換しようとしているリポジトリについて説明します。これは私の古いリポジトリで、6年前に作成した非常にシンプルなRライブラリです。当時、暗号通貨の価格分析をしたい人々にとって役立つものでした。現在は積極的にメンテナンスしていませんが、このリポジトリを完全なLLMテキストに変換し、Google Geminiモデルに送信して、ドキュメントや単体テスト、その他できることについて質問してみましょう。
ライブラリのインストールが完了したので、正常にインストールされたか確認するためにコマンドを入力してみましょう。code to promptと入力すると、「次の必須引数が提供されていません:path」というメッセージが表示されます。これは、code to promptコマンドは正常に動作していますが、パスとして何を与えるべきかが指定されていないということです。
次に、テキストに変換したいリポジトリに移動してクローンします。git cloneを実行してリポジトリをペーストします。URLをコピーして貼り付けると、リポジトリが現在の作業ディレクトリ(ホームフォルダ)にコピーされます。ホームフォルダ内にcoin-market-cap-Rというフォルダができました。
最も基本的な設定として、単にcode to promptとcoin-market-cap-Rを実行すると、コードがクリップボードにコピーされます。ペーストすると、すでにそこにあることがわかります。「このRについていくつか質問をしてもよろしいですか?」と尋ねると、提供したものは101,000トークンであることがわかります。この101,000トークンを非常にシンプルにコピーして、現在のシステムプロンプトに貼り付けました。
Google Geminiは「はい、どうぞ質問してください」と応答しました。「すべての暗号通貨の価格を抽出し、棒グラフも描画できるサンプルコードを提供してください」と尋ねてみましょう。まず、Rを理解できているか、そしてコードも提供してくれるか確認します。正しいコードを提供してくれました。ライブラリを使用するのではなく、ライブラリの一部として書いたソースコードを提供してくれています。コンテキスト全体を理解し、私たちが求めるものを提供してくれていることがわかります。
毎回コードをクリップボードにコピーする必要はありません。クリップボードにコピーしてメモ帳ファイルやテキストファイルに保存することもできますが、最も簡単なのは実際にコードを書くことです。コード全体をテキストファイル、LLMテキストファイルに変換し、出力ファイルとして保存する簡単なコマンドを書いてみましょう。これにより、RAG(検索補助生成)やセマンティック検索の一部として、あるいはLLMテキストの一部として使用するのが簡単になります。
code to promptとcoin-market-cap-R、そして--output=coin_prompt.txtと入力すると、コードがコピーされ、プロンプトに変換されて、coin_prompt.txtに保存されます。出力がcoin_prompt.txtに保存されたことがわかります。nano coin_prompt.txtを実行すると、ファイルの全内容を確認できます。このテキストファイルはChatGPT、RAGシステム、またはコンピュータ上のセマンティック検索システムで使用できます。より効果的でしょう。
もう一つ興味深いのは、トークン数を確認できることです。ローカルLLMセットアップがある場合、コードベースが何トークンを占めるか理解したい人が多いです。これを確認する最も簡単な方法は、code to promptとcoin-market-cap-R、そして--tokensを実行することです。ChatGPTモデルとAda 002のようなテキスト埋め込みで85,194トークンあることがわかります。
最後に、最も高度な設定として、特定のファイルをスキップしたい場合があります。時にはcode promptを使用せず、特定のファイルセットだけを使用したい場合があります。例えば、これにはすべてのRファイルがありますが、Rファイルだけを使用したい場合は、include=.*.Rと指定できます。これを実行すると、Rファイルだけがコピーされます。新しいセッションを作成してプロンプトを貼り付け、質問を投げかけると、ドキュメントや他のファイル形式を使用せず、Rコードだけを使用したため、16,000トークンになっています。これは、コードベースの一部だけを取り出して使用する非常に簡単な方法です。
全体として、これはコードベース全体をLLMプロンプトに変換する最も簡単な方法の一つだと思います。他のコードベースでも同様に機能するはずです。例えば、最近実装したKokoro TTSの場合、別のフォルダがあります。code to prompt kokoroを実行すると、複数のディレクトリがあり、すべてがコピーされてペーストされます。新しいプロンプトを作成して貼り付けると、すべてが利用可能になります。これは基本的に、持っているどのリポジトリでも機能します。
「簡単な説明を提供してください」と質問してみましょう。プロジェクト全体を貼り付けて、簡単な説明を求めました。プロジェクトの説明を分解してくれています。テキスト音声変換モデルであることや、プロジェクトの主要な部分を説明してくれています。利用可能な異なるファイルを示し、どのように動作するかを説明しています。
「gradioコードを提供してください」と尋ねてみましょう。gradioコードは持っていませんが、このリポジトリを提供したので、フルフロントエンドアプリケーションとして実行するのに役立つgradioコードを実際に提供してくれます。わずか数秒または数分で、リポジトリ全体を提供し、リポジトリについて質問し、フルスタックアプリケーションとして実行するのに役立つ新しいコードを取得することができました。
code to promptは、任意のリポジトリやフォルダをLLMプロンプトに変換できる素晴らしいCLIツールです。現在のコンテキスト学習の一部として使用するか、テキストファイルとして保存して後で使用することができます。これは素晴らしいツールで、LLMの知識を向上させるために使用できるものとして共有したかったです。このツールについてどう思うか、同じ目的で使用している他のツールがあれば、ぜひ教えてください。また別の動画でお会いしましょう。ハッピープロンプトデー!

いいなと思ったら応援しよう!