2023-07-03 17:04:17 +08:00
|
|
|
|
# MetaGPT:多智能体元编程框架
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:16:37 +08:00
|
|
|
|
<p align="center">
|
2023-07-03 15:19:22 +08:00
|
|
|
|
<a href=""><img src="resources/MetaGPT-logo.jpeg" alt="MetaGPT logo: 使 GPT 以软件公司的形式工作,协作处理更复杂的任务" width="150px"></a>
|
2023-07-03 15:16:37 +08:00
|
|
|
|
</p>
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:16:37 +08:00
|
|
|
|
<p align="center">
|
2023-07-03 15:19:22 +08:00
|
|
|
|
<b>使 GPT 以软件公司的形式工作,协作处理更复杂的任务</b>
|
2023-07-03 15:16:37 +08:00
|
|
|
|
</p>
|
2023-07-03 14:28:09 +08:00
|
|
|
|
|
2023-07-03 15:16:37 +08:00
|
|
|
|
<p align="center">
|
2023-07-03 15:19:22 +08:00
|
|
|
|
<a href="README.md"><img src="https://img.shields.io/badge/文档-中文版-blue.svg" alt="CN doc"></a>
|
|
|
|
|
|
<a href="README_EN.md"><img src="https://img.shields.io/badge/document-English-blue.svg" alt="EN doc"></a>
|
2023-07-03 15:16:37 +08:00
|
|
|
|
<a href="https://discord.gg/wCp6Q3fsAk"><img src="https://dcbadge.vercel.app/api/server/wCp6Q3fsAk?compact=true&style=flat" alt="Discord Follow"></a>
|
|
|
|
|
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
|
|
|
|
|
|
<a href="https://twitter.com/DeepWisdom2019"><img src="https://img.shields.io/twitter/follow/MetaGPT?style=social" alt="Twitter Follow"></a>
|
|
|
|
|
|
</p>
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:40:51 +08:00
|
|
|
|
1. MetaGPT输入**一句话的老板需求**,输出**用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等**
|
|
|
|
|
|
2. MetaGPT内部包括**产品经理 / 架构师 / 项目经理 / 工程师**,它提供了一个**软件公司**的全过程与精心调配的SOP
|
|
|
|
|
|
1. `Code = SOP(Team)` 是核心哲学。我们将SOP具象化,并且用于LLM构成的团队
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|

|
2023-07-01 07:43:09 +08:00
|
|
|
|
|
2023-07-03 15:23:48 +08:00
|
|
|
|
<p align="center">软件公司多角色示意图(正在逐步实现)</p>
|
|
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
## 示例(均由 GPT-4 生成)
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
例如,键入`python startup.py "写个类似今日头条的推荐系统"`并回车,你会获得一系列输出,其一是数据结构与API设计
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|

|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
这需要大约**0.2美元**(GPT-4 API的费用)来生成一个带有分析和设计的示例,大约2.0美元用于一个完整的项目
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
## 安装
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2023-07-03 15:19:22 +08:00
|
|
|
|
# 第 1 步:确保您的系统上安装了 NPM。并使用npm安装mermaid-js
|
2023-06-30 17:10:48 +08:00
|
|
|
|
npm --version
|
2023-07-03 10:31:38 +08:00
|
|
|
|
sudo npm install -g @mermaid-js/mermaid-cli
|
|
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
# 第 2 步:确保您的系统上安装了 Python 3.9+。您可以使用以下命令进行检查:
|
2023-07-03 10:31:38 +08:00
|
|
|
|
python --version
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
# 第 3 步:克隆仓库到您的本地机器,并进行安装。
|
2023-06-30 17:10:48 +08:00
|
|
|
|
git clone https://github.com/geekan/metagpt
|
|
|
|
|
|
cd metagpt
|
|
|
|
|
|
python setup.py install
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
## 配置
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
- 在 `config/key.yaml / config/config.yaml / env` 中配置您的 `OPENAI_API_KEY`
|
|
|
|
|
|
- 优先级顺序:`config/key.yaml > config/config.yaml > env`
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2023-07-03 15:19:22 +08:00
|
|
|
|
# 复制配置文件并进行必要的修改。
|
2023-06-30 17:10:48 +08:00
|
|
|
|
cp config/config.yaml config/key.yaml
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
| 变量名 | config/key.yaml | env |
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|--------------------------------------------|-------------------------------------------|--------------------------------|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
| 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" |
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
## 示例:启动一个创业公司
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
|
|
|
|
|
```shell
|
2023-07-03 15:19:22 +08:00
|
|
|
|
python startup.py "写一个命令行贪吃蛇"
|
2023-06-30 17:10:48 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
运行脚本后,您可以在 `workspace/` 目录中找到您的新项目。
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
### 代码实现
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
|
from metagpt.software_company import SoftwareCompany
|
|
|
|
|
|
from metagpt.roles import ProjectManager, ProductManager, Architect, Engineer
|
|
|
|
|
|
|
|
|
|
|
|
async def startup(idea: str, investment: str = '$3.0', n_round: int = 5):
|
2023-07-03 15:19:22 +08:00
|
|
|
|
"""运行一个创业公司。做一个老板"""
|
2023-06-30 17:10:48 +08:00
|
|
|
|
company = SoftwareCompany()
|
|
|
|
|
|
company.hire([ProductManager(), Architect(), ProjectManager(), Engineer()])
|
|
|
|
|
|
company.invest(investment)
|
|
|
|
|
|
company.start_project(idea)
|
|
|
|
|
|
await company.run(n_round=n_round)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
你可以查看`examples`,其中有单角色(带知识库)的使用例子与仅LLM的使用例子。
|
2023-06-30 17:10:48 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
## 联系信息
|
2023-07-03 11:31:07 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
如果您对这个项目有任何问题或反馈,欢迎联系我们。我们非常欢迎您的建议!
|
2023-07-03 11:31:07 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
- **邮箱:** alexanderwu@fuzhi.ai
|
|
|
|
|
|
- **GitHub 问题:** 对于更技术性的问题,您也可以在我们的 [GitHub 仓库](https://github.com/geekan/metagpt/issues) 中创建一个新的问题。
|
2023-07-03 11:31:07 +08:00
|
|
|
|
|
2023-07-03 15:50:47 +08:00
|
|
|
|
我们会在2-3个工作日内回复所有问题。
|
2023-07-03 11:31:07 +08:00
|
|
|
|
|
2023-07-03 15:19:22 +08:00
|
|
|
|
## 演示
|
2023-06-30 17:54:05 +08:00
|
|
|
|
|
|
|
|
|
|
https://github.com/geekan/MetaGPT/assets/2707039/5e8c1062-8c35-440f-bb20-2b0320f8d27d
|
2023-07-03 15:19:22 +08:00
|
|
|
|
|
|
|
|
|
|
## 加入微信讨论群
|
|
|
|
|
|
|
|
|
|
|
|
[//]: # ({:height="50%" width="50%"})
|
|
|
|
|
|
<img src="./resources/MetaGPT-WeChat-Group-Simple.png" width = "30%" height = "30%" alt="MetaGPT WeChat Discuss Group" align=center />
|
|
|
|
|
|
|