File Icons
BLOG
GPT Pilotを使ってAIと一緒に開発をしようとしてみた

目次

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)

実際の開発の流れに基づいて、複数の役割を持つエージェントを使用します。具体的には以下のように、役割の異なるエージェントを用意して、順番にタスクを進めます。

  1. 「プロダクトオーナーエージェント」が、仕様について質問する
  2. 「アーキテクトエージェント」が技術選定を行う
  3. 「DevOpsエージェント」が開発環境を作成する
  4. 「TechLeadエージェント」が開発者が実装する必要のある開発タスクを作成する
  5. 「開発者エージェント」が実装する必要のあるものをリストアップする
  6. 「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)

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)

一通り質問に回答すると、プロジェクトのサマリが表示されます。

スクリーンショット 2023-10-18 14.35.51.png (194.2 kB)

その後以下が質問されるので、DONEを入力するとアプリケーションの作成が開始します。

スクリーンショット 2023-10-18 14.37.56.png (632.8 kB)

実行環境などで問題があると、人に助けを求めてきます。都度対応すると、開発を進めてくれます。

スクリーンショット 2023-10-18 14.40.08.png (76.9 kB)

結末

その後も開発を進めてくれていましたが、どうしても解決できず「あなたの手で直してください」と言われてしまい、開発が止まってしまいました。

スクリーンショット 2023-10-18 14.45.01.png (89.4 kB)

まとめ

GPT Pilotを使って、GPT-4を使ってアプリケーションを開発しようとしましたがうまくいきませんでした。まだまだ開発全体を代替させるのは難しいように感じました。

しかし、アプローチは面白いと思うので、今後の開発に期待です。

CONTACT
ご依頼やご相談、サービスについてのご質問やご要望がございましたら、お気軽にお問い合わせください。
送付いただいた内容を確認の上、担当者からご連絡させていただきます。
お問い合わせ