File Icons
BLOG
ChatDevを使って、ChatGPTにソフトウェア開発をやらせてみる

目次

ChatDevとは

ChatDevとは、ChatGPTのAPIを使ったソフトウェア開発フレームワークです。設計、コーディング、テスト、ドキュメンテーションなどの一連の開発タスクを、ChatGPTに実行させる事ができるツールです。

ChatDevの仕組み

ChatDevの仕組みについては、開発者が書いた論文に詳細が解説されています。

ChatDevのアーキテクチャ

ChatDevのアーキテクチャは「フェーズレベル」と「チャットレベル」の2段階で構成されています。

スクリーンショット 2023-10-11 17.07.13.png (155.1 kB)

フェーズレベルでは、ウォーターフォールモデルに従って、設計、コーディング、テスト、文書化の4つのフェーズにプロセスを分割します。

チャットレベルでは、各フェーズは更に小さなタスクに分割され、ChatGPTのエージェントが与えられた役割をロールプレイすることでタスクを実行していきます。

例えば、デザインフェーズではCEO/CPO/CTOの役割を、コーディングフェーズではCTO/プログラマー/デザイナーの役割を、テストフェーズではCTO/プログラマー/デザイナーの役割を、エージェントがそれぞれ演じます。

Tought Instruction

ChatDev実装上の工夫に、Tought Instructionという仕組みがあります。これは、実装方法を逐次的に指示する方法です。

スクリーンショット 2023-10-11 17.08.57.png (190.8 kB)

例えばコーディングフェーズでは、「すべてのメソッドを実装して」ではなくて、「実装されてないメソッドはなにか?」→「そのメソッドを実装して」のように、役割を切り替えながら細かく対話をする方法をとります。

この仕組みによって、誤った実装を防ぐことが期待されます。

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

このコマンドを実行すると、以下のようなマインスイーパーのアプリケーションが実行されます。

スクリーンショット 2023-10-11 17.42.20.png (49.2 kB)

まとめと所感

ChatDevを使って、実際にアプリケーションを作成してみました。アプリケーションのアイデアは非常に面白いものだと感じました。

ただし、何度か試してみたところ、エラーを吐いたり機能が不十分なアプリケーションが作成されることも多々ありました。そのため、雛形として利用するような使い方が良いのかなと思いました。

参考

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