1. 前言
本章任务:
- 阅读教程
- 了解MetaGPT
- 准备Python环境
- 获取MetaGPT
- 配置MetaGPT
2. 阅读教程
阅读《MetaGPT智能体开发入门》教程的第一章。
3. 了解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 | cd MetaGPT |
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 | OPENAI_API_KEY: "sk-..." # your openai api key |
测试与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 | export OPENAI_API_KEY="sk-..." # your openai api key |
6.2.3. 代码环境变量法
在代码中使用os库来将自己的OpenAI API key设定为环境变量
1 | import os |
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 | import asyncio |
代码解释:
首先,导入已实现的角色。
然后,初始化公司团队,配置对应的智能体,设置对应的预算以及提供一个写一个小游戏的需求。
最后,运行并得到生成的游戏代码!
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先关掉了。