目次
- GPT Pilotとは
- GPT Pilotの特徴
- GPT-Pilotの仕組み
- GPT-Pilotを使ってみる
- 事前準備
- GPT-Pilotを使ってみる
- まとめ
GPT Pilotとは
GPT Pilotは、GPT-4を使って運用を前提にしたアプリケーション全体をコーディングする開発ツールです。
GPT Pilotの特徴
GPT Pilotには、以下の3つの特徴があります。
- 人間との頻繁なやり取りを前提としている。 ChatGPTに完全自動で作ってもらうのではなく、人間が技術リーダーとして密接に連携することを前提としています。
- アプリを段階的にコーディングする。 アプリケーション開発を小さなタスクに分割して、各タスクを実装、実行、デバッグしてから次のタスクに進ませます。
- スケーラブルである。 コードベースが大規模になると、送受信するトークン量が増加するため、費用がかさんだり送受信できるコード量を超えてしまう可能性がある。それに対処するために、「コンテキストの巻き戻し(Context rewinding)」「再帰的な会話(Recursive conversation)」「テスト駆動開発(TDD)」の3つの戦略を取ります。
- コンテキストの巻き戻し : アプリ全体を書き換えないようにしつつ、コンテキストの長さを同じくらいに揃えます。
- 再帰的な会話 : LLMが文脈を巻き戻せるようにします。具体的には、問題を深ぼった後に、それを踏まえて上位の問題を解決できるようにします。
- テスト駆動開発 : 変更のたびにすべてのテストを行います。
GPT-Pilotの仕組み
![image.png (92.1 kB)](https://img.esa.io/uploads/production/attachments/16757/2023/10/18/93654/5557242e-c818-4d2d-a38b-0f92ebeddd9d.png)
実際の開発の流れに基づいて、複数の役割を持つエージェントを使用します。具体的には以下のように、役割の異なるエージェントを用意して、順番にタスクを進めます。
- 「プロダクトオーナーエージェント」が、仕様について質問する
- 「アーキテクトエージェント」が技術選定を行う
- 「DevOpsエージェント」が開発環境を作成する
- 「TechLeadエージェント」が開発者が実装する必要のある開発タスクを作成する
- 「開発者エージェント」が実装する必要のあるものをリストアップする
- 「Code Monkeyエージェント」が実装する
GPT-Pilotを使ってみる
事前準備
1.リポジトリをクローンします。
■zsh
git clone https://github.com/Pythagora-io/gpt-pilot.git
2.gpt-pilotディレクトリ内に移動して、venvで仮想環境を作成し、仮想環境を有効化します。
■zsh
# ディレクトリを移動 cd gpt-pilot # 仮想環境を作成して有効化 python -m venv pilot-env source pilot-env/bin/activate
3.必要なライブラリをインストールします。
■zsh
pip install -r requirements.txt
4.pilotディレクトリ内に移動して、.envファイルを作成します。
■zsh
# ディレクトリを移動
cd pilot
# .envファイルを作成
mv .env.example .env
5..envファイルの中にOPENAI_API_KEY=の後ろに、APIキーを書き加えます。
![スクリーンショット 2023-10-18 14.42.45.png (129.4 kB)](https://img.esa.io/uploads/production/attachments/16757/2023/10/18/93654/be5a3007-93a6-4385-b29d-96c5ff60f87f.png)
5.データベースを初期化します。
■zsh
python db_init.py
GPT-Pilotを使ってみる
GPT-Pilotを起動する
以下のスクリプトを実行することで、GPT-Pilotを起動します。
■zsh
python main.py
開発のためのコミュニケーションをとる
スクリプトを実行して、作成したいアプリケーション名と詳細を入力します。すると、詳細の仕様についての質問が次々になされます。質問に対して次々答えていきます。
![スクリーンショット 2023-10-18 14.31.10.png (316.7 kB)](https://img.esa.io/uploads/production/attachments/16757/2023/10/18/93654/ade8cdb7-7763-4bc1-b8f5-92b964d912a6.png)
一通り質問に回答すると、プロジェクトのサマリが表示されます。
![スクリーンショット 2023-10-18 14.35.51.png (194.2 kB)](https://img.esa.io/uploads/production/attachments/16757/2023/10/18/93654/a9be3ff7-ee6b-41ef-9ec7-b646b14c4fb5.png)
その後以下が質問されるので、DONEを入力するとアプリケーションの作成が開始します。
![スクリーンショット 2023-10-18 14.37.56.png (632.8 kB)](https://img.esa.io/uploads/production/attachments/16757/2023/10/18/93654/46df84cc-c297-40d0-b660-017a07983149.png)
実行環境などで問題があると、人に助けを求めてきます。都度対応すると、開発を進めてくれます。
![スクリーンショット 2023-10-18 14.40.08.png (76.9 kB)](https://img.esa.io/uploads/production/attachments/16757/2023/10/18/93654/de8b2ed2-27bb-4212-ae04-ac64400a4ad7.png)
結末
その後も開発を進めてくれていましたが、どうしても解決できず「あなたの手で直してください」と言われてしまい、開発が止まってしまいました。
![スクリーンショット 2023-10-18 14.45.01.png (89.4 kB)](https://img.esa.io/uploads/production/attachments/16757/2023/10/18/93654/81cab6c0-abf2-425b-a2fc-0dcda69cac18.png)
まとめ
GPT Pilotを使って、GPT-4を使ってアプリケーションを開発しようとしましたがうまくいきませんでした。まだまだ開発全体を代替させるのは難しいように感じました。
しかし、アプローチは面白いと思うので、今後の開発に期待です。