ファンリピート社のブログFR note

【MetaGPT】組織っぽく動くAI?!一つのプロンプトからここまでできるとは!

こんにちは、funrepeatの塙です。

今回は、MetaGPTというものについて実際に使用してみたので、その使用感やどんなものなのか、について紹介していきます。

目次

\ 年末までに限った無料特典 /
貴社のシステム開発・アプリ開発を爆速で進めるための
【毎月先着2社限定】デモアプリ構築・無料依頼フォーム

【当社では、こんなデモアプリがすぐに作れます】

  • 貴社で「まずつくってみたい」試作品アプリの構築を毎月先着2社限定で無料で承っております
  • 社内の管理システムからtoB, toCのWebサービスまで幅広くご支援可能です
  • ご興味のある方は下記のフォームよりお申し込みください

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行のプロンプトからあそこまでの資料とプログラムを作成してくれるのは驚きです。

人に任せるよりも断然速いスピードでの成果物の作成をしてくれます。まだ、作成後の修正や確認は人間が行わなければいけない部分も多いですが、修正の要求にも応えられるようになったり、より精度が上がれば的確な指示をプロンプトで投げることができれば一つのサービスなど誰にでも作れるようになる日も来るかもしれません。

最後までご覧いただきありがとうございました。

メンバーを募集中!

当社ではお客様に向き合い、お客様の事業成功にコミットをできる仲間を募集しています。

正社員、インターンから副業まで、幅広く採用活動を進めております。プロジェクトマネージャーやシステムエンジニアとして当社のシステム開発業務に携わってみませんか?

当社と共に、業界トップを目指して挑戦したい方は未経験者から経験者まで広く募集しているので、ぜひエントリーをお待ちしています。

\ システム開発にお悩みの方へ /
貴社のシステム開発・アプリ開発を爆速で進めるための
超高速開発が分かる資料3点セット

【下記の3点の資料が無料でダウンロードできます】

  • 【料金表付き】新規事業を爆速で立ち上げられる高速開発支援サービスの紹介資料
  • 【最短24時間で納品?】高速開発のプロジェクト支援事例集
  • 導入に向けて開発プラットフォームのランニングコスト比較表
  • URLをコピーしました!

この記事を書いた人

株式会社ファンリピートのアバター

株式会社ファンリピート

FRnoteは株式会社ファンリピートのメンバーによって運営されている社内ブログです。ノーコード・ローコードの技術ブログを始めとして、最新のIT技術、業務で役立つノウハウなど様々なトピックをまとめています。


目次
閉じる