网站怎么做透明导航,东莞优秀网站建设,移动端网站开发教案,查询域名信息前言 我最近一直在做基于AI Agent 的个人项目#xff0c; 因为工作加班较多#xff0c;设计思考时间不足#xff0c;这里借着Datawhale的开源学习课程《MetaGPT智能体理论与实战》课程#xff0c;来完善自己的思路#xff0c;抛砖引玉#xff0c;和各位开发者一起学习 因为工作加班较多设计思考时间不足这里借着Datawhale的开源学习课程《MetaGPT智能体理论与实战》课程来完善自己的思路抛砖引玉和各位开发者一起学习 一、介绍
今天是打卡的第一天先说说主要的学习内容:
获取MetaGPT 部署到本地环境 配置MetaGPT 申请ChatGPT API Key基于ChatGPT API构建调用代码 运行MetaGPT案例代码进行测试 今天学习的内容较为简单我会尽量以简洁的语言详细描述清楚这个流程带着读者一起学习Agent开发 二、配置MetaGPT运行环境
声明 python版本为3.9为了方便学习这里我使用jupyter notebook进行讲解所有代码我都会同步提交到Github和Gitee如果各位读者觉得我写的不错可以给我一个Star. 1. 查看Python版本
为了确保我们的Python环境正确首先要检查Python的版本。可以使用以下命令来查看Python版本
!python3 --version如果上面的命令不起作用或者报错可以尝试使用以下命令
python --version输出
Python 3.10.132. 安装MetaGPT
要安装MetaGPT我们可以使用pip来获取它。以下是在终端中安装MetaGPT的命令
pip install metagpt0.6.6如果你在国内环境并且希望加速安装过程可以使用清华源进行按照
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple metagpt0.6.6也可以通过拉取官方仓库进行安装
git clone https://github.com/geekan/MetaGPT.git
cd /your/path/to/MetaGPT
pip install -e .这里有个重点如果你的OpenAI API Key是直连且不限速版本你只需要安装包即可 如果你的API Key为免费API且有速率限制我这里建议你直接clone MetaGPT的GitHub仓库其可以在config2.yaml中自定义配置代理服务器和Key我在运行MetaGPT的过程中遇到的最大问题就是API限速导致程序报错所以一定要注意这一点 作者因为使用的是中转的API Key因此选择了方法3
git clone https://github.com/geekan/MetaGPT.git
cd MetaGPT
pip install -e .我们在config/config2.yaml中配置自己的api key和 base_url 以及选择的model:
llm:api_type: openai # or azure / ollama / groq etc.model: gpt-4-turbo # or gpt-3.5-turbobase_url: https://api.openai.com/v1 # or forward url / other llm urlapi_key: YOUR_API_KEY3. 配置MetaGPT
为了配置MetaGPT你需要调用ChatGPT API服务。你可以在这里查看具体配置方式。如果你没有科学环境也可以通过去tb buy 一个 中转的 API Key来实现。我们主要介绍官方申请方法 中转方案修改的部分我在代码中也已经标出 ① 登录自己的账号 ②创建API Key ③本地配置环境变量
import os
os.environ[OPENAI_API_KEY] sk-... # 填入你自己的OpenAI API key
os.environ[OPENAI_API_MODEL] gpt-3.5-turbo # 选择你要使用的模型例如gpt-4, gpt-3.5-turbo
os.environ[OPENAI_API_BASE] https://api.openai-forward.com/v1 # 调整API请求地址设置访问中转代理服务器,如果是商家购买的可以联系商家要代理服务器地址这里并不是固定的④验证配置是否成功
from openai import OpenAI# client OpenAI(api_keysk-...... # 官网直连版本
client OpenAI(base_urlhttps://xxxx.com, # 这里填写你的中转服务器地址api_keysk-......) # 这里填写你的中转apikey
completion client.chat.completions.create(modelgpt-3.5-turbo,messages[{role: system, content: 你是一个WebGIS开发者测绘地理和全栈开发精通.},{role: user, content: 聊聊国内外WebGIS开发与AI结合的场景现在我们可以聊聊国内外WebGIS开发与AI LLM Agent结合的场景吧}]
)
print(completion.choices[0].message.content)运行结果如下: bingo运行成功我们成功拿到了我们要的方案
通过以上步骤我们终于成功配置MetaGPT并开始使用它进行各种任务了。
三. 使用MetaGPT
接下来我们通过下面这个案例我们用以验证环境配置是否成功并初次体验多智能体框架中的指令 - 动作 - 角色 - 环境 - 团队的抽象概念。在这个示例中我们创建了一个团队其中包括产品经理、架构师、项目经理和工程师。然后我们投资并运行一个项目最后让团队运行五轮。
import asyncio
from metagpt.roles import (Architect,Engineer,ProductManager,ProjectManager,
)
from metagpt.team import Teamasync def startup(idea: str):company Team()company.hire([ProductManager(),Architect(),ProjectManager(),Engineer(),])company.invest(investment3.0)company.run_project(ideaidea)await company.run(n_round5)await startup(ideawrite a cli blackjack game)这里我copy了其中几轮Agent的回答可以看到我们的AI团队已经运行起来了
[CONTENT]
{Language: en_us,Programming Language: Python,Original Requirements: write a cli blackjack game,Project Name: cli_blackjack_game,Product Goals: [Create an engaging and interactive gameplay experience,Ensure smooth and intuitive user interface for seamless gameplay,Implement various difficulty levels to cater to different player skills],User Stories: [As a player, I want to be able to start a new game easily,As a player, I want to see my current score and progress during the game,As a player, I want to have options to hit, stand, or double down during my turn,As a player, I want to receive clear instructions on how to play the game,As a player, I want to feel the excitement and challenge of a real blackjack game],Competitive Analysis: [Blackjack Game A: Basic interface, lacks interactive features,Blackjack Pro: Offers advanced gameplay options and strategy guides,Blackjack Master: Provides a realistic casino experience with multiplayer mode],Competitive Quadrant Chart: quadrantChart\n title \Engagement and User Experience\\n x-axis \Low Engagement\ -- \High Engagement\\n y-axis \Low User Experience\ -- \High User Experience\\n quadrant-1 \Enhance Features\\n quadrant-2 \Improve User Experience\\n quadrant-3 \Optimize Engagement\\n quadrant-4 \Maximize User Satisfaction\\n \Blackjack Game A\: [0.3, 0.4]\n \Blackjack Pro\: [0.6, 0.7]\n \Blackjack Master\: [0.8, 0.9]\n \Our CLI Blackjack Game\: [0.5, 0.6],Requirement Analysis: ,Requirement Pool: [[P0,Implement basic game logic for blackjack],[P1,Create a scoring system to track player progress],[P2,Develop a user-friendly interface for easy navigation],[P2,Incorporate different difficulty levels for player choice],[P1,Include clear instructions on how to play the game]],UI Design draft: The UI will include options for hitting, standing, and doubling down. It will display the players current score and provide clear instructions for gameplay.,Anything
2024-05-12 17:36:48.720 | ERROR | metagpt.utils.common:log_it:554 - Finished call to metagpt.actions.action_node.ActionNode._aask_v1 after 10.724(s), this was the 1st time calling it. exp: openai.types.completion_usage.CompletionUsage() argument after ** must be a mapping, not NoneTypeUNCLEAR:
}
[/CONTENT][CONTENT]
{Language: en_us,Programming Language: Python,Original Requirements: write a cli blackjack game,Project Name: cli_blackjack_game,Product Goals: [Create an engaging CLI experience for users,Ensure smooth gameplay and fair card dealing logic,Provide an enjoyable and interactive blackjack game],User Stories: [As a player, I want to be able to place bets and receive cards,As a player, I want to have options like hit, stand, double down,As a player, I want to see my current balance and game outcome],Competitive Analysis: [Blackjack Game A: Basic CLI interface, lacks interactive features,cli-blackjack.io: Offers various betting options and clear game instructions,blackjack-cli.com: Provides realistic card dealing but lacks betting flexibility],Competitive Quadrant Chart: quadrantChart\n title \Engagement and User Experience\\n x-axis \Low Engagement\ -- \High Engagement\\n y-axis \Low User Experience\ -- \High User Experience\\n quadrant-1 \Enhance Features\\n quadrant-2 \Improve User Experience\\n quadrant-3 \Optimize Engagement\\n quadrant-4 \Maintain Quality\\n \Blackjack Game A\: [0.3, 0.6]\n \cli-blackjack.io\: [0.45, 0.23]\n \blackjack-cli.com\: [0.57, 0.69]\n \Our CLI Blackjack Game\: [0.5, 0.6],Requirement Analysis: ,Requirement Pool: [[P0,Implement card dealing and betting system],[P1,Include game logic for hit, stand, and double down actions],[P2,Display player balance and game outcomes]],UI Design draft: Simple text-based interface with clear instructions and game status
2024-05-12 17:36:57.136 | ERROR | metagpt.utils.common:log_it:554 - Finished call to metagpt.actions.action_node.ActionNode._aask_v1 after 19.140(s), this was the 2nd time calling it. exp: openai.types.completion_usage.CompletionUsage() argument after ** must be a mapping, not NoneTypeupdates.,Anything UNCLEAR:
}
[/CONTENT]通过以上步骤我们可以开始使用MetaGPT进行各种任务并看到AI Agent的强大潜力
四、总结
本文是这个打卡系列的第一篇文章也是后续学习的基础通过这篇文章我们了解了MetaGPT开发的基础环境配置方法在下一篇文章中我们将深入理解AI Agent的理论并通过代码来实现Agent的每个模块需求希望我的文章对各位读者和开发者有所帮助期待后续学习
参考文献
MetaGPT 官方文档
项目地址
Github地址 如果觉得我的文章对您有帮助三连关注便是对我创作的最大鼓励或者一个star也可以.