🤖

GPTsで小さいリポジトリの詳細解説GPTをサクッとつくる

2023/11/16に公開

リポジトリのファイル一式を丸っとアップロードしたら、それを熟知した上で解説とか、最適なコード提案とかしてくれるのではないか?と思ったことはありませんでしょうか?私は思っていまして、自分なりに色々試してみました。GPTsとAssistantでファイルアップロードが使えますので、両方で試してみましたが、リポジトリサイズが大きくなるとかなり厳しい感じで、期待した結果はほとんど得られませんでした。でも小さいサイズのリポジトリであれば、リポジトリのディレクトリ構造・各ファイルの詳細を把握した上で、解説やコードの提案をしてくれました。

やること

  • 解説してほしい小さなリポジトリをクローンする
  • リポジトリを1つのファイルにする
  • GPTsを作る
  • GPTsにファイルをアップロードする
  • 質問する

解説してほしい小さなリポジトリをクローンする

私は今ちょうどSeaORMのお勉強を始めています。WebフレームワークはRocketを使っていますので、SeaORMとRocketのサンプルプロジェクトの確認をしようと思いました。そこで、SeaORMリポジトリをクローンします。

git clone https://github.com/SeaQL/sea-orm.git

リポジトリを1つのファイルにする

今回は、上記のsea-ormのexamplesにある、rocket_exampleの詳細を確認したいと思います。
リポジトリを自動で1つのファイルにまとめたかったので、自分でrepconというのを作りました。これはディレクトリ内のテキストファイルをまとめてくれます。
下記のように使えますので、よかったら使ってみてください。

cd sea-orm/examples/rocket_example
repcon .

これで、output/output_1.txt というのが出力されます。このoutput_1.txt にrocket_exampleの全ファイルがまとまっています。

GPTsを作り、ファイルをアップロードする

instructionsに、下記を設定して、上記output_1.txt をアップロードしました。

あなたはSeaORMとRocketを用いたRustのプロジェクトサンプルの解説をしてくれます。添付のファイルがそのプロジェクトサンプルのソースコード一式となります。
このソースコード一式を熟知していて、あらゆる詳細な質問に回答することができます。回答は常に非常に簡潔であり、短いです。日本語を使います。
あいまいな回答は一切せず、不明なものは即座に不明であり、確認不可能であると回答します。

GPTsの作成画面はこんな感じです。

質問する

下記のように、どんなクレート(ライブラリ)が入っているかや、各クレートの役割、apiのエンドポイントの種類、ディレクトリ構造の表示などができました!

クレートの個数を聞いてみる

各クレートの役割を聞いてみる

APIのエンドポイントの種類を聞いてみる

リポジトリのディレクトリ構造を聞いてみる

これらはGithubリポジトリのURLを提示するだけだと、できないことが多いと思うので、結構便利に使える可能性はあるかなあと思いました。といっても、冒頭で申し上げましたが、大きいサイズになると厳しいですし、嘘情報も結構入ってくるので、利用用途は限定されるかなあとは思います。

Discussion