geekan / MetaGPT
- четверг, 6 июля 2023 г. в 00:00:04
The Multi-Agent Meta Programming Framework: Given one line Requirement, return PRD, Design, Tasks, Repo | 多智能体元编程框架:给定老板需求,输出产品文档、架构设计、任务列表、代码
Assign different roles to GPTs to form a collaborative software entity for complex tasks.
Code = SOP(Team)
is the core philosophy. We materialize SOP and apply it to teams composed of LLMs.Software Company Multi-Role Schematic (Gradually Implementing)
For example, if you type python startup.py "Design a RecSys like Toutiao"
, you would get many outputs, one of them is data & api design
It requires around $0.2 (GPT-4 api's costs) to generate one example with analysis and design, around $2.0 to a full project.
# Step 1: Ensure that NPM is installed on your system. Then install mermaid-js.
npm --version
sudo npm install -g @mermaid-js/mermaid-cli
# Step 2: Ensure that Python 3.9+ is installed on your system. You can check this by using:
python --version
# Step 3: Clone the repository to your local machine, and install it.
git clone https://github.com/geekan/metagpt
cd metagpt
python setup.py install
OPENAI_API_KEY
in any of config/key.yaml / config/config.yaml / env
config/key.yaml > config/config.yaml > env
# Copy the configuration file and make the necessary modifications.
cp config/config.yaml config/key.yaml
Variable Name | config/key.yaml | env |
---|---|---|
OPENAI_API_KEY # Replace with your own key | OPENAI_API_KEY: "sk-..." | export OPENAI_API_KEY="sk-..." |
OPENAI_API_BASE # Optional | OPENAI_API_BASE: "https://<YOUR_SITE>/v1" | export OPENAI_API_BASE="https://<YOUR_SITE>/v1" |
python startup.py "Write a cli snake game"
After running the script, you can find your new project in the workspace/
directory.
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):
"""Run a startup. Be a boss."""
company = SoftwareCompany()
company.hire([ProductManager(), Architect(), ProjectManager(), Engineer()])
company.invest(investment)
company.start_project(idea)
await company.run(n_round=n_round)
You can check examples
for more details on single role (with knowledge base) and LLM only examples.
If you have any questions or feedback about this project, please feel free to contact us. We highly appreciate your suggestions!
We will respond to all questions within 2-3 business days.