liushaojie
Add application file
360d784
|
raw
history blame
10.1 kB

MetaGPT: マルチエージェントフレームワーク

MetaGPT ロゴ: GPT がソフトウェア会社で働けるようにし、協力してより複雑な仕事に取り組む。

GPT にさまざまな役割を割り当てることで、複雑なタスクのための共同ソフトウェアエンティティを形成します。

CN doc EN doc JA doc Discord Follow License: MIT roadmap roadmap Twitter Follow

  1. MetaGPT は、1 行の要件 を入力とし、ユーザーストーリー / 競合分析 / 要件 / データ構造 / API / 文書など を出力します。
  2. MetaGPT には、プロダクト マネージャー、アーキテクト、プロジェクト マネージャー、エンジニア が含まれています。MetaGPT は、ソフトウェア会社のプロセス全体を、慎重に調整された SOP とともに提供します。
    1. Code = SOP(Team) が基本理念です。私たちは SOP を具体化し、LLM で構成されるチームに適用します。

ソフトウェア会社は LLM ベースの役割で構成されている

ソフトウェア会社のマルチロール図式(順次導入)

例(GPT-4 で完全生成)

例えば、python startup.py "Toutiao のような RecSys をデザインする"と入力すると、多くの出力が得られます

Jinri Toutiao Recsys データと API デザイン

解析と設計を含む 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_DOWNLOADtrue に設定することで、 Chromium のダウンロードをスキップすることができます。

  • このツールをグローバルにインストールする問題を抱えている人もいます。ローカルにインストールするのが代替の解決策です、

    npm install @mermaid-js/mermaid-cli
    
  • config.yml に mmdc のコンフィギュレーションを記述するのを忘れないこと

    PUPPETEER_CONFIG: "./config/puppeteer-config.json"
    MMDC: "./node_modules/.bin/mmdc"
    

Docker によるインストール

# ステップ 1: metagpt 公式イメージをダウンロードし、config.yaml を準備する
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 # 設定を変更する

# ステップ 2: コンテナで metagpt デモを実行する
docker run --rm \
    --privileged \
    -v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \
    -v /opt/metagpt/workspace:/app/metagpt/workspace \
    metagpt/metagpt:v0.3.1 \
    python startup.py "Write a cli snake game"

# コンテナを起動し、その中でコマンドを実行することもできます
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"

コマンド 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:custom .

設定

  • OPENAI_API_KEYconfig/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:///v1" export OPENAI_API_BASE="https:///v1"

チュートリアル: スタートアップの開始

python startup.py "Write a cli snake game"
# コードレビューを利用すれば、コストはかかるが、より良いコード品質を選ぶことができます。
python startup.py "Write a cli snake game" --code_review True

スクリプトを実行すると、workspace/ ディレクトリに新しいプロジェクトが見つかります。

プラットフォームまたはツールの設定

要件を述べるときに、どのプラットフォームまたはツールを使用するかを指定できます。

python startup.py "pygame をベースとした cli ヘビゲームを書く"

使用方法

会社名
    startup.py - 私たちは AI で構成されたソフトウェア・スタートアップです。私たちに投資することは、無限の可能性に満ちた未来に力を与えることです。

シノプシス
    startup.py IDEA <flags>

説明
    私たちは AI で構成されたソフトウェア・スタートアップです。私たちに投資することは、無限の可能性に満ちた未来に力を与えることです。

位置引数
    IDEA
        型: str
        あなたの革新的なアイデア、例えば"スネークゲームを作る。"など

フラグ
    --investment=INVESTMENT
        型: float
        デフォルト: 3.0
        投資家として、あなたはこの AI 企業に一定の金額を拠出する機会がある。
    --n_round=N_ROUND
        型: int
        デフォルト: 5

注意事項
    位置引数にフラグ構文を使うこともできます

コードウォークスルー

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 のみの例を詳しく見ることができます。

クイックスタート

ローカル環境のインストールや設定は、ユーザーによっては難しいものです。以下のチュートリアルで MetaGPT の魅力をすぐに体験できます。

お問い合わせ先

このプロジェクトに関するご質問やご意見がございましたら、お気軽にお問い合わせください。皆様のご意見をお待ちしております!

ご質問には 2-3 営業日以内に回答いたします。

デモ

https://github.com/geekan/MetaGPT/assets/2707039/5e8c1062-8c35-440f-bb20-2b0320f8d27d