GPT にさまざまな役割を割り当てることで、複雑なタスクのための共同ソフトウェアエンティティを形成します。
- MetaGPT は、1 行の要件 を入力とし、ユーザーストーリー / 競合分析 / 要件 / データ構造 / API / 文書など を出力します。
- MetaGPT には、プロダクト マネージャー、アーキテクト、プロジェクト マネージャー、エンジニア が含まれています。MetaGPT は、ソフトウェア会社のプロセス全体を、慎重に調整された SOP とともに提供します。
Code = SOP(Team)
が基本理念です。私たちは SOP を具体化し、LLM で構成されるチームに適用します。
ソフトウェア会社のマルチロール図式(順次導入)
例えば、python startup.py "Toutiao のような RecSys をデザインする"
と入力すると、多くの出力が得られます
解析と設計を含む 1 つの例を生成するのに、$0.2 (GPT-4 の api のコスト)程度、完全なプロジェクトには $2.0 程度が必要です。
# ステップ 1: NPM がシステムにインストールされていることを確認してください。次に mermaid-js をインストールします。
npm --version
sudo npm install -g @mermaid-js/mermaid-cli
# ステップ 2: Python 3.9+ がシステムにインストールされていることを確認してください。これを確認するには:
python --version
# ステップ 3: リポジトリをローカルマシンにクローンし、インストールする。
git clone https://github.com/geekan/metagpt
cd metagpt
python setup.py install
注:
-
すでに Chrome、Chromium、MS Edge がインストールされている場合は、環境変数
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD
をtrue
に設定することで、 Chromium のダウンロードをスキップすることができます。 -
このツールをグローバルにインストールする問題を抱えている人もいます。ローカルにインストールするのが代替の解決策です、
npm install @mermaid-js/mermaid-cli
-
config.yml に mmdc のコンフィギュレーションを記述するのを忘れないこと
PUPPETEER_CONFIG: "./config/puppeteer-config.json" MMDC: "./node_modules/.bin/mmdc"
# ステップ 1: metagpt 公式イメージをダウンロードし、config.yaml を準備する
docker pull metagpt/metagpt:v0.3
mkdir -p /opt/metagpt/{config,workspace}
docker run --rm metagpt/metagpt:v0.3 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/config.yaml
vim /opt/metagpt/config/config.yaml # 設定を変更する
# ステップ 2: コンテナで metagpt デモを実行する
docker run --rm \
--privileged \
-v /opt/metagpt/config:/app/metagpt/config \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3 \
python startup.py "Write a cli snake game"
# コンテナを起動し、その中でコマンドを実行することもできます
docker run --name metagpt -d \
--privileged \
-v /opt/metagpt/config:/app/metagpt/config \
-v /opt/metagpt/workspace:/app/metagpt/workspace \
metagpt/metagpt:v0.3
docker exec -it metagpt /bin/bash
$ python startup.py "Write a cli snake game"
コマンド docker run ...
は以下のことを行います:
- 特権モードで実行し、ブラウザの実行権限を得る
- ホストディレクトリ
/opt/metagpt/config
をコンテナディレクトリ/app/metagpt/config
にマップする - ホストディレクトリ
/opt/metagpt/workspace
をコンテナディレクトリ/app/metagpt/workspace
にマップする - デモコマンド
python startup.py "Write a cli snake game"
を実行する
# また、自分で metagpt イメージを構築することもできます。
git clone https://github.com/geekan/MetaGPT.git
cd MetaGPT && docker build -t metagpt:v0.3 .
OPENAI_API_KEY
をconfig/key.yaml / config/config.yaml / env
のいずれかで設定します。- 優先順位は:
config/key.yaml > config/config.yaml > env
の順です。
# 設定ファイルをコピーし、必要な修正を加える。
cp config/config.yaml config/key.yaml
変数名 | config/key.yaml | env |
---|---|---|
OPENAI_API_KEY # 自分のキーに置き換える | OPENAI_API_KEY: "sk-..." | export OPENAI_API_KEY="sk-..." |
OPENAI_API_BASE # オプション | OPENAI_API_BASE: "https://<YOUR_SITE>/v1" | export OPENAI_API_BASE="https://<YOUR_SITE>/v1" |
python startup.py "Write a cli snake game"
# コードレビューを利用すれば、コストはかかるが、より良いコード品質を選ぶことができます。
python startup.py "Write a cli snake game" --code_review True
スクリプトを実行すると、workspace/
ディレクトリに新しいプロジェクトが見つかります。
NAME
startup.py - We are a software startup comprised of AI. By investing in us, you are empowering a future filled with limitless possibilities.
SYNOPSIS
startup.py IDEA <flags>
DESCRIPTION
We are a software startup comprised of AI. By investing in us, you are empowering a future filled with limitless possibilities.
POSITIONAL ARGUMENTS
IDEA
Type: str
Your innovative idea, such as "Creating a snake game."
FLAGS
--investment=INVESTMENT
Type: float
Default: 3.0
As an investor, you have the opportunity to contribute a certain dollar amount to this AI company.
--n_round=N_ROUND
Type: int
Default: 5
NOTES
You can also use flags syntax for POSITIONAL ARGUMENTS
from metagpt.software_company import SoftwareCompany
from metagpt.roles import ProjectManager, ProductManager, Architect, Engineer
async def startup(idea: str, investment: float = 3.0, n_round: int = 5):
"""スタートアップを実行する。ボスになる。"""
company = SoftwareCompany()
company.hire([ProductManager(), Architect(), ProjectManager(), Engineer()])
company.invest(investment)
company.start_project(idea)
await company.run(n_round=n_round)
examples
でシングル・ロール(ナレッジ・ベース付き)と LLM のみの例を詳しく見ることができます。
このプロジェクトに関するご質問やご意見がございましたら、お気軽にお問い合わせください。皆様のご意見をお待ちしております!
- Email: [email protected]
- GitHub Issues: 技術的なお問い合わせについては、GitHub リポジトリ に新しい issue を作成することもできます。
ご質問には 2-3 営業日以内に回答いたします。