2023-06-30 17:10:48 +08:00
# MetaGPT: The Multi-Role Meta Programming Framework
2023-07-03 15:16:37 +08:00
< p align = "center" >
< a href = "" > < img src = "resources/MetaGPT-logo.jpeg" alt = "MetaGPT logo: Enable GPT to work in software company, collaborating to tackle more complex tasks." width = "150px" > < / a >
< / p >
2023-06-30 17:10:48 +08:00
2023-07-03 15:16:37 +08:00
< p align = "center" >
< b > Enable GPT to work in software company, collaborating to tackle more complex tasks.< / b >
< / p >
2023-07-03 14:28:09 +08:00
2023-07-03 15:16:37 +08:00
< p align = "center" >
< a href = "README_CN.md" > < img src = "https://img.shields.io/badge/文档-中文版-blue.svg" alt = "CN doc" > < / a >
< a href = "README.md" > < img src = "https://img.shields.io/badge/document-English-blue.svg" alt = "EN doc" > < / a >
< 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-01 07:39:04 +08:00
1. The team can handle **Boss's one line Requirement** cooperate and generate **user stories / competetive analysis / requirements / data structures / apis / files etc.**
2. The team consists of **product manager / architect / project manager / engineer** , it provides the full process of a **software company.**
2023-06-30 17:10:48 +08:00
2023-07-01 07:43:09 +08:00

2023-06-30 17:10:48 +08:00
## Examples (fully generated by GPT-4)
2023-07-01 08:30:39 +08:00
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
2023-06-30 17:10:48 +08:00
2023-07-01 08:29:28 +08:00

2023-06-30 17:10:48 +08:00
2023-07-01 08:29:28 +08:00
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.
2023-06-30 17:10:48 +08:00
## Installation
```bash
2023-07-03 10:31:38 +08:00
# Step 1: Ensure that NPM is installed on your system. Then install 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
# Step 2: Ensure that Python 3.9+ is installed on your system. You can check this by using:
python --version
2023-06-30 17:10:48 +08:00
# 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
```
## Configuration
2023-07-01 07:43:09 +08:00
- Configure your `OPENAI_API_KEY` in any of `config/key.yaml / config/config.yaml / env`
2023-06-30 17:10:48 +08:00
- Priority order: `config/key.yaml > config/config.yaml > env`
```bash
# 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" |
## Tutorial: Initiating a startup
```shell
python startup.py "Write a cli snake game"
```
After running the script, you can find your new project in the `workspace/` directory.
### Code walkthrough
```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):
"""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)
```
2023-07-01 07:30:47 +08:00
You can check `examples` for more details on single role (with knowledge base) and LLM only examples.
2023-06-30 17:10:48 +08:00
2023-07-03 11:31:07 +08:00
## Contact Information
If you have any questions or feedback about this project, please feel free to contact us. We highly appreciate your suggestions!
- **Email:** alexanderwu@fuzhi .ai
- **GitHub Issues:** For more technical inquiries, you can also create a new issue in our [GitHub repository ](https://github.com/geekan/metagpt/issues ).
We will respond to all inquiries within 2-3 business days.
2023-06-30 17:54:05 +08:00
## Demo
https://github.com/geekan/MetaGPT/assets/2707039/5e8c1062-8c35-440f-bb20-2b0320f8d27d