目次
ChatDevとは
ChatDevとは、ChatGPTのAPIを使ったソフトウェア開発フレームワークです。設計、コーディング、テスト、ドキュメンテーションなどの一連の開発タスクを、ChatGPTに実行させる事ができるツールです。
ChatDevの仕組み
ChatDevの仕組みについては、開発者が書いた論文に詳細が解説されています。
ChatDevのアーキテクチャ
ChatDevのアーキテクチャは「フェーズレベル」と「チャットレベル」の2段階で構成されています。
フェーズレベルでは、ウォーターフォールモデルに従って、設計、コーディング、テスト、文書化の4つのフェーズにプロセスを分割します。
チャットレベルでは、各フェーズは更に小さなタスクに分割され、ChatGPTのエージェントが与えられた役割をロールプレイすることでタスクを実行していきます。
例えば、デザインフェーズではCEO/CPO/CTOの役割を、コーディングフェーズではCTO/プログラマー/デザイナーの役割を、テストフェーズではCTO/プログラマー/デザイナーの役割を、エージェントがそれぞれ演じます。
Tought Instruction
ChatDev実装上の工夫に、Tought Instructionという仕組みがあります。これは、実装方法を逐次的に指示する方法です。
例えばコーディングフェーズでは、「すべてのメソッドを実装して」ではなくて、「実装されてないメソッドはなにか?」→「そのメソッドを実装して」のように、役割を切り替えながら細かく対話をする方法をとります。
この仕組みによって、誤った実装を防ぐことが期待されます。
ChatDevを使ってみる
ChatDevの仕組みがわかったところで、実際にツールを使ってみたいと思います。
使い方
1.ChatDevのリポジトリをクローンします。
■sh
git clone https://github.com/OpenBMB/ChatDev.git
2.Python環境をセットアップします。Python3.9以上のバージョンが必要です。公式ドキュメントではcondaを使用して仮想環境を作成していますが、venvを使うこともできます。
■sh
python3 -m venv .venv source .venv/bin/activate
3.依存関係のライブラリをインストールします。
■sh
cd ChatDev pip3 install -r requirements.txt
4.OpenAI APIキーの設定をします。OpenAI API Keyを発行したら、環境変数としてエクスポートします。以下の<your_OpenAI_API_key>の部分を書き換えます。
■sh
export OPENAI_API_KEY="<your_OpenAI_API_key>"
5.以下のコマンドでソフトウェアの構築を行うことができます。
■sh
python3 run.py --task "[description_of_your_idea]" --name "[project_name]"
6.生成されたソフトウェアは、WareHouseディレクトリのProject_name_DefaultOrganization_timestampのようなフォルダに生成されます。そこでmain.pyを実行すると、アプリケーションを実行できます。
■sh
cd WareHouse/project_name_DefaultOrganization_timestamp python3 main.py
実際に使ってみる
例えば、以下のように指示を出して、マインスイーパーのゲームを作成してみます。
■sh
python3 run.py --task "マインスイーパーのゲームを作成して" --name "Mine_Sweeper"
上記のコマンドの実行が完了すると、WareHouse/Mine_Sweeper_DefaultOrganization_20231011135702のようなディレクトリが作成されます。
■sh
cd WareHouse/Mine_Sweeper_DefaultOrganization_20231011135702 python3 main.py
このコマンドを実行すると、以下のようなマインスイーパーのアプリケーションが実行されます。
まとめと所感
ChatDevを使って、実際にアプリケーションを作成してみました。アプリケーションのアイデアは非常に面白いものだと感じました。
ただし、何度か試してみたところ、エラーを吐いたり機能が不十分なアプリケーションが作成されることも多々ありました。そのため、雛形として利用するような使い方が良いのかなと思いました。
参考
- ChatDevのGithubリポジトリ : https://github.com/OpenBMB/ChatDev/blob/main/README-Japanese.md
- ChatDev作者の論文 : https://arxiv.org/abs/2307.07924