こんにちは、funrepeatの塙です。
今回は、MetaGPTというものについて実際に使用してみたので、その使用感やどんなものなのか、について紹介していきます。
MetaGPTとは
MetaGPTと聞くとMeta(旧:facebook)が関係していそうに思いますが、関係なく、Open AIのchat GPTを活用したマルチエージェントフレームワークです。具体的には、異なる役割を持つエージェントが協力して、共通の目標達成を目指す設計がされています。方法は用意で、行いたいことを入力するだけです。それにより、1行の入力からユーザーストーリー、要件定義、データ構造、API、文書などを作成します。
MetaGPTには、プロダクトマネージャー、エンジニアなどが含まれ、ソフトウェア会社のプロセス全体を、SOPとともに提供してくれます。
要するに、一つの組織に対して、制作をお願いすることができるという感じです。
実際に使ってみる
MetaGPTはGit hub上で公開されており、オンライン上のdockerを使って試用することができます。
今回は、そのチュートリアルに則ってヘビゲームの作成に取り組みます。
まずは、こちらのサイトにアクセスします。
この際にDockerのアカウントが必要となるので、まだ持っていない方は作成してください。
Startという緑色のボタンをクリックすると、以下のような画面が表示されます。
「+ADD NEW INSTANCE」をクリックしてバーチャルマシンを起動します。
以下のコードを順に実行します。
docker pull metagpt/metagpt:v0.3.1
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml
vim /opt/metagpt/config/key.yaml # Change the config
このコマンドを実行するとテキストエディットの画面が出てくるので、必要な部分を変更します。
Open AIのAPIが必要で、以下の画像の赤枠の箇所にAPI keyを入力し、コメントアウトをはずします。
テキストエディットからは「Esc」をクリック後、「:wq」を入力することで元のコマンドラインに戻ることができます。
続いて、MetaGPTのコンテナを実行します
docker run --name metagpt -d \
--privileged \
-v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
-v /opt/metagpt/workspace:/app/metagpt/workspace\
metagpt/metagpt:v0.3.1
そして、実際に何を作成するかを指示していきます
docker exec -it metagpt /bin/bash
$ python startup.py "write a cli snake game"
すると、コマンドラインでは、次々と処理が行われていきます。要件定義やプログラムの構成が作成されていく様子が見れます。
そして最後に作成されたファイルをダウンロードしていきます。
ホストマシンに戻るので「exit」を入力します。
cd /opt/metagpt
tar -czvf workspace.tgz workspace
python -m http.server 9999
これで、ダウンロードできるページに飛ぶので、そこからダウンロードをします。
出力結果を見てみて
では、実際に出力されたものを見ていきましょう。
様々なファイルが生成されているのが確認できます。
以下がディレクトリ構造です
.
├── cli_snake_game
│ ├── __pycache__
│ ├── food.py
│ ├── game.py
│ ├── main.py
│ ├── score.py
│ └── snake.py
├── docs
│ ├── api_spec_and_tasks.md
│ ├── prd.md
│ └── system_design.md
├── resources
│ ├── competitive_analysis.mmd
│ ├── competitive_analysis.pdf
│ ├── competitive_analysis.png
│ ├── competitive_analysis.svg
│ ├── data_api_design.mmd
│ ├── data_api_design.pdf
│ ├── data_api_design.png
│ ├── data_api_design.svg
│ ├── seq_flow.mmd
│ ├── seq_flow.pdf
│ ├── seq_flow.png
│ └── seq_flow.svg
└── requirements.txt
一度の実行でこれだけのものを作成してくれるのは驚きです。
実際に実行するにはmain.pyを実行します。
また、resourcesには様々な図が用意されており、例えば以下の画像が含まれています。
他人によって作成されたファイルは構造の理解が大変ですが、このようにまとめてくれているとかなりわかりやすくなりますね。
ただ、正確性というとまだ実用的ではない部分があるようです。何度か作成をしてみましたが、動いても蛇が成長しなかったり、foodが食べられても消えなかったりと、様々な問題点がありました。
そして、何よりここが足りないなと感じたのは、生成されたファイルに対して修正を依頼ができないところです。今のものだと作成して終わり、なのでうまくファイルが生成されなかったときには修正はコードエディタを使用して編集するしかないです。
以下に実際に実行してみた時の動画を表示します。残念ながら蛇の長さが4以上にならなくなってしまっています。
終わり
いかがだったでしょうか。正直信頼性にはまだ欠ける部分があるもののたった1行のプロンプトからあそこまでの資料とプログラムを作成してくれるのは驚きです。
人に任せるよりも断然速いスピードでの成果物の作成をしてくれます。まだ、作成後の修正や確認は人間が行わなければいけない部分も多いですが、修正の要求にも応えられるようになったり、より精度が上がれば的確な指示をプロンプトで投げることができれば一つのサービスなど誰にでも作れるようになる日も来るかもしれません。
最後までご覧いただきありがとうございました。
メンバーを募集中!
当社ではお客様に向き合い、お客様の事業成功にコミットをできる仲間を募集しています。
正社員、インターンから副業まで、幅広く採用活動を進めております。プロジェクトマネージャーやシステムエンジニアとして当社のシステム開発業務に携わってみませんか?
当社と共に、業界トップを目指して挑戦したい方は未経験者から経験者まで広く募集しているので、ぜひエントリーをお待ちしています。