深入解析AutoGen AI Agents框架:构建多代理群聊实例的步骤详解
在前面几篇文章中,我们一起入门了AutoGen, 了解了Assistant和UserProxyAssistant 两个agent 间的chat协作模式,并结合案例,观察了执行流程。这篇文章, 我们一起来玩一下GroupChat和GroupManager这两个群聊的功能。一想想,就有点小激动,安排各种agent, 相互聊天,就代替人类把活给干完了。程序员只需要使用GroupChat 或 GroupM
前言
在前面几篇文章中,我们一起入门了AutoGen, 了解了Assistant和UserProxyAssistant 两个agent 间的chat协作模式,并结合案例,观察了执行流程。
这篇文章, 我们一起来玩一下GroupChat和GroupManager这两个群聊的功能。一想想,就有点小激动,安排各种agent, 相互聊天,就代替人类把活给干完了。程序员只需要使用GroupChat 或 GroupManager把agents组织起来,就可以"八仙过海",就可以"复仇者联盟了"…
任务:使用群聊功能来实现新闻稿
-
何为GroupChatManager
GroupChat会组合多种类型的agents,协同工作,完成用户或用户代理提出的问题。
很显然啊,在之前例子中,我们使用proxy和assistant一起工作较为简单。如果需求比较复杂,或需要复用或模块化,应该就是GruopChat上场的时候了。
边coding, 边了解
一起打开colab吧,新建一个notebook。经过几篇文章的学习,大家会发现AutoGen的开发流程基本是一致的。
- 安装autogen
# autogen 还在早期, 所以您跑代码的时候,可能API更新了,就请看官方文档
%pip install pyautogen~=0.1.0 -q -U
- 配置LLM config
import autogen
# 大家可以使用gpt-4 或其它,我这里用的是3.5, 还能用。
config_list = [ { 'model': 'gpt-3.5-turbo', 'api_key': '' } ]
llm_config={
"seed": 42, #为缓存做的配置
"config_list": config_list
}
- 构建Agents
先构建一个用户代理agent,负责接收用户的指令。注意,这里的work_dir和之前不一样,也是引出今天GroupChat的关键。系统消息指定为A human admin
# 用户代理agent
user_proxy = autogen.UserProxyAgent(
name="User_proxy", # agent的标识符
system_message="A human admin.", # 系统消息是用户给代理的角色
code_execution_config={"last_n_messages":2, "work_dir":"groupchat"}, # 工作目录设置为groupchat
human_input_mode="NEVER"
)
# 助理agent
coder = autogen.AssistantAgent(
name="Coder",
llm_config=llm_config,
)
pm = autogen.AssistantAgent(
name="Product manager",
system_message="Creative in product ideas.",
llm_config=llm_config,
)
在上面的assistant agent中, 我们构建了两个Assistant, 神仙打架的感觉好像要出来了,激动。
之前看《构建你自己的西部世界——AI小镇搭建实战》感觉不可思议,现在AutoGen直接摆到桌面上了,这么和LangChain一比, 不愧是下一代的AI应用框架。
# GroupChatManager
groupchat = autogen.GroupChat(agents=[user_proxy,coder, pm], messages=[],max_round=12) # 群聊 最大的chat轮次12次
manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=llm_config) #管理员,可以与之交互
好吧,一个AutoGen, 把一个项目工程安排的明明白白。boss, pm, 工程师,一起开会, 主持会议的是GroupChat, 会中声明,manager是本项目的管管。特别喜欢AutoGen这种拟人化的API和开发风格,LangChain还是代码味太重,自然语义少了些…
在这里,我们先为agents 构建部分做一个小结。
user_proxy: acts as a human admin, 代理用户,充当人类管理员
coder assistant 负责编码工作
pm assistant 以产品经理的角色出现,通过"Creative in product ideas"系统消息,期望它在产品的想法上提出创意,同时负责以合适的方式回复用户的提问。
- 发起群聊会话
相比之前的简单例子,user_proxy初始对话的第一个参数由assistant变为manager。用户下达给代理agent的任务是查看yahoo.com 上的最新新闻,随机选择一条,根据内容,aigc 生成一篇文章
user_proxy.initiate_chat(manager,
message="Query finance news on yahoo.com, random pick one, scrap the article content, and form a post for writing a blog")
根据上一个例子的经验,coder assistant 需要做为agent生成访问yahoo 财经新闻的代码,并获取一篇文章的链接,继而进入这个链接,根据内容生成一篇文章。pm assistant在这个chat group里做点什么呢? 我们一起来看输出吧
- chat 输出,重点看多个agents之间是怎么交流的
首先,User_proxy 会向chat_manager发出用户提出的任务,它就是个管家,活还是要派给长工去干的
接着corder assistant 真的像我在项目会议里表达这个需求技术可行性方案如何一样,提出需要四步完成这个任务。
再接着,User_proxy拿到coder assistant生成的代码后,执行(UserProxyAssistant是可以执行函数的)。
紧接着,coder告诉chat_manager,它会根据第二步,随机选择链接的需求,来生成代码,并交给User_proxy执行了。下面会有一个fetch_artile_content函数,这个函数就通过http请求(requests),获取网页内容(BeautifulSoup)。代码将会根据,随机的一条金融新闻,并得到它的标题和内容。
User_proxy执行代码并告知chat_manager 成功得到了。
最后是pm向chat_message的回复
在这里,我们的任务就完成了。感觉这个PM assistant 来的有点太突然,但其实,它可以让agent的角色更细分,coder assistant 就负责代码, pm assistant负责写文案。角色的细化,在大型项目中是非常有必要的。
总结
经过今天这个任务,我们用起了GroupChatManager。boss, pm, coder一齐出现的感觉太nice了, 距离我用AutoGen开一家LLM AI应用开发公司还会远吗?
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
更多推荐
所有评论(0)