目次
- 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の仕組み
実際の開発の流れに基づいて、複数の役割を持つエージェントを使用します。具体的には以下のように、役割の異なるエージェントを用意して、順番にタスクを進めます。
- 「プロダクトオーナーエージェント」が、仕様について質問する
- 「アーキテクトエージェント」が技術選定を行う
- 「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キーを書き加えます。
5.データベースを初期化します。
■zsh
python db_init.py
GPT-Pilotを使ってみる
GPT-Pilotを起動する
以下のスクリプトを実行することで、GPT-Pilotを起動します。
■zsh
python main.py
開発のためのコミュニケーションをとる
スクリプトを実行して、作成したいアプリケーション名と詳細を入力します。すると、詳細の仕様についての質問が次々になされます。質問に対して次々答えていきます。
一通り質問に回答すると、プロジェクトのサマリが表示されます。
その後以下が質問されるので、DONEを入力するとアプリケーションの作成が開始します。
実行環境などで問題があると、人に助けを求めてきます。都度対応すると、開発を進めてくれます。
結末
その後も開発を進めてくれていましたが、どうしても解決できず「あなたの手で直してください」と言われてしまい、開発が止まってしまいました。
まとめ
GPT Pilotを使って、GPT-4を使ってアプリケーションを開発しようとしましたがうまくいきませんでした。まだまだ開発全体を代替させるのは難しいように感じました。
しかし、アプローチは面白いと思うので、今後の開発に期待です。