Skip to content
forked from geekan/MetaGPT

Given Boss Requirement, return PRD, Design, Tasks, Repo

License

Notifications You must be signed in to change notification settings

lifish0/MetaGPT

 
 

Repository files navigation

MetaGPT: The Multi-Role Meta Programming Framework

English / 中文

Currently, we have managed to enable GPT to work in software company, collaborating to tackle more complex tasks.

  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.

A software company consists of LLM-based roles

Examples (fully generated by GPT-4)

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

Jinri Toutiao Recsys 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.

Installation

# 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

Configuration

  • Configure your OPENAI_API_KEY in any of config/key.yaml / config/config.yaml / env
  • Priority order: 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"

Tutorial: Initiating a startup

python startup.py "Write a cli snake game"

After running the script, you can find your new project in the workspace/ directory.

Code walkthrough

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)

You can check examples for more details on single role (with knowledge base) and LLM only examples.

Demo

demo-cli-blackjack-compress.mp4

About

Given Boss Requirement, return PRD, Design, Tasks, Repo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Shell 0.1%