一个计算机技术爱好者与学习者

0%

基于MetaGPT实现一个订阅智能体:第一章 前期准备

1. 前言

本章任务:

  • 阅读教程
  • 了解MetaGPT
  • 准备Python环境
  • 获取MetaGPT
  • 配置MetaGPT

2. 阅读教程

阅读《MetaGPT智能体开发入门》教程的第一章。

3. 了解MetaGPT

观看视频【直播回放】MetaGPT作者深度解析直播回放

这个视频讲述了MetaGPT作者关于模型训练和优化的深入解析。作者分享了关于大语言模型发展路径的实际路径,以及ZeroShot的逻辑和效果应用,还涉及了智能体和环境的认知互动等。视频内容包括智能体架构、代码结构、环境配置等方面的讲解。

  • 0:01 🌍大语言模型的发展路径
  • 9:09 💡BERT的有效性和训练成本
  • 18:23 🎮强化学习在模型推理中的应用
  • 27:33 🗣️直觉、语音交互和多智能体协作
  • 36:46 🔍智能体的需求和发展前景
  • 45:55 🤖MetaGPT:AI智能体框架
  • 55:11 📊MMU榜单、GPT-4性能和商业机会
  • 64:24 🌟多智能体框架的愿景和影响
  • 73:34 💼创业公司和MetaGPT软件公司实例
  • 82:47 🔧智能体的功能和设计理念
  • 91:59 🔬Hugging GPT的工作原理和开源竞争

4. 准备Python环境

方法一:使用pyenv安装,参考文档《Python版本管理器pyenv》
方法二(推荐):使用conda安装,参考文档《Python包管理工具Conda》
方法三:从Python官网下载安装包,安装

5. 获取MetaGPT

MetaGPT官方文档 - 安装中提供了pip、git、docker等安装方式。
因为我们要进行二次开发,因此最好选择git的方式。

1、clone MetaGPT

1
git clone https://github.com/geekan/MetaGPT.git

2、切换到学习版本 v0.5.2

1
git checkout v0.5.2

3、安装依赖

1
2
3
cd MetaGPT
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -e.

6. 配置MetaGPT

6.1. 获取 OpenAI API Key

1、登录openai官网,注册并登录账号,选择API。

2、openai platform页面,点击API keys,Create new secret key,得到Openai API key

6.2. 配置 OpenAI API Key

配置OpenAI API key有三种方法:配置文件法、系统环境变量法、代码环境变量法。

其中配置文件的优先级大于系统环境变量和代码环境变量,具体来说,MetaGPT将会按照以下优先级来读取配置:

1
$HOME/.metagpt/config.yaml > config/key.yaml > config/config.yaml > environment variable

6.2.1. 配置文件法(推荐)

默认配置文件为 config/config.yaml,建议拷贝出一个 config/key.yaml 用于自定义配置。

config/key.yaml 配置示例:

1
2
OPENAI_API_KEY: "sk-..." # your openai api key
OPENAI_API_MODEL: "gpt-3.5-turbo-16k" # your model

测试与openai官方api的连通性

1
curl https://api.openai.com/v1

如果不通的话,那么还需要配置一个openai api专用代理。

1
OPENAI_API_BASE: "https://api.openai-forward.com/v1"

注意:如果是使用 v0.6 以上的MetaGPT版本,那么需要使用 OPENAI_BASE_URL

6.2.2. 系统环境变量法

配置系统环境变量

1
2
3
export OPENAI_API_KEY="sk-..." # your openai api key
export OPENAI_API_MODEL="gpt-3.5-turbo-16k" # your model
export OPENAI_API_BASE="https://api.openai-forward.com/v1"

6.2.3. 代码环境变量法

在代码中使用os库来将自己的OpenAI API key设定为环境变量

1
2
3
4
import os
os.environ["OPENAI_API_KEY"] = "sk-..." # your openai api key
os.environ["OPENAI_API_MODEL"] = "gpt-3.5-turbo-16k" # your model
os.environ["OPENAI_API_BASE"] = "https://api.openai-forward.com/v1"

6.3. 获取&配置其他LLM API

当前支持的其他LLM:openai, azure_openai, gemini, spark, zhipuai, fireworks, open_llm, ollama, anthropic, metagpt

获取&配置其他LLM的方法,可以参考文档适配其他国产模型

7. 创建一个多智能体团队

7.1. 运行已有脚本

1
python startup.py --idea "write a cli blackjack game"

其中 –idea 可以省略,运行后,智能体就会开始工作,最终workspace目录中会生成一个 blackjack game 项目。

7.2. 自己创建脚本

1、创建一个脚本 demo.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import asyncio
from metagpt.roles import (
Architect,
Engineer,
ProductManager,
ProjectManager,
)
from metagpt.team import Team

async def startup(idea: str):
company = Team()
company.hire(
[
ProductManager(),
Architect(),
ProjectManager(),
Engineer(),
]
)
company.invest(investment=3.0)
company.start_project(idea=idea)

await company.run(n_round=5)

asyncio.run(startup(idea="write a cli blackjack game")) # blackjack: 二十一点

代码解释:
首先,导入已实现的角色。
然后,初始化公司团队,配置对应的智能体,设置对应的预算以及提供一个写一个小游戏的需求。
最后,运行并得到生成的游戏代码!

2、运行脚本

1
python demo.py

8. 问题记录

8.1. DEFAULT_PROVIDER无效问题

agent学习群里其他同学发现了一个 DEFAULT_PROVIDER 无效问题:
1、只要 self._is_valid_llm_key(self.OPENAI_API_KEY) and not self.OPENAI_API_TYPE and self.OPENAI_API_MODEL 为true,那么 DEFAULT_PROVIDER 就会失效。
2、如果用户之前设置过 OPENAI_API_KEY ,那么想要换成其他大模型,那么必须注释掉 OPENAI_API_KEY

修复方法:https://github.com/geekan/MetaGPT/pull/776/files

但是,因此dev分支已经完全避免了这个问题,很快就会合入到main,所以这个PR先关掉了。