目录
一、AutoGen studio部署与测试
- 多智能体框架,目前(2024.12.06)工作流需要至少包含两个智能体;
- AutoGen studio是基于AutoGen智能体框架的AI APP(用户界面),它可以帮助快速原型化 AI智能体、多AI智能体工作流(但只是基于AutoGen框架提供了一个终端用户界面示例,并不是一个完整的产品)。其中包括各种创建多智能体交互的组件:skills、LLM、Agent和workflow。
- AutoGen项目下的AutoGen studio GitHub网址:https://github.com/microsoft/autogen/blob/main/python/packages/autogen-studio/README.md
- AutoGen studio说明:https://microsoft.github.io/autogen/0.2/docs/autogen-studio/getting-started/
1、部署与启动
最好是创建一个新的conda环境,然后在环境中进行安装部署。
conda安装和新环境创建具体操作方式:https://blog.csdn.net/lucky_chaichai/article/details/117323715
1、创建AutoGen studio的conda环境
为保证兼容性,建议安装3.10及以上版本的python。
conda create -n autogen_studio python=3.11
2、安装AutoGen studio
#激活对应的conda环境
conda activate autogen_studio
#安装AutoGen studio
pip install autogenstudio
3、启动AutoGen studio并访问
在autogen_studio 这个环境下,执行:
# 方式1:这种方式只能在本地浏览器访问,默认port是8080
autogenstudio ui --port 8081
# 方式2:可以指定host参数,这样在其他电脑上也能访问ui界面
autogenstudio ui --port 8081 --host replaced by your_ip
上述命令运行后,直接将网址复制到浏览器中打开即可:
方式1网址是:
http://127.0.0.1:8081
方式2网址是:
http://your_ip:8081
其他可选参数还有:
--appdir
argument to specify the directory where the app files (e.g., database and generated user files) are stored. By default, it is set to the a .autogenstudio directory in the user’s home directory.--reload
argument to enable auto-reloading of the server when changes are made to the code. By default, it is set to False.--database-uri
argument to specify the database URI. Example values include sqlite:///database.sqlite for SQLite and postgresql+psycopg://user:password@localhost/dbname for PostgreSQL. If this is not specified, the database URIL defaults to a database.sqlite file in the --appdir directory.--upgrade-database
argument to upgrade the database schema to the latest version. By default, it is set to False.
2、新建skills、model、Agent、workflow
整体用户界面如下:
1、新建skils(相当于tool、代码函数)
skills是用户可以自定义的、Agent可以调用来执行任务的python函数。
整体界面如下图,点击“new skills”按钮可以创建自己的skills。
创建skills其实就是用python代码自定义一个函数,比如下面的这个“generate_and_save_images” skills:
- 包括两个大部分:左侧python代码块、右侧skill的基本配置;
- 这个是页面上预置的skills,功能是帮助用户生成并保存图片(使用这个skills之前需要在conda环境中安装matplotlib模块 );
- 右侧需要定义skills名称(需要与左侧的函数名一致)、描述和环境变量(没有环境变量,不定义也行);
- 左侧是python代码编辑器,可以根据需求自定义python函数;
- 使用实例可以看“多智能体最终效果展示”小节中,根据用户输入“Write a python script to plot a sine wave and save it to disc as a png file sine_wave.png”生成的效果。
2、新建model(LLM)
model是AI Agent的基座大模型。
整体界面如下,每次点击“new model”之后,即使你关闭了(没有保存),界面上也会显示这个大模型……
下面是“new model”界面,创建LLM时需要考虑:
- 大模型可以是openAi的GPT系列模型,也可以指定自己的大模型(我指定的是本地的华知7b_32k模型);
- 大模型的调用接口需要是open_ai方式封装的,有model_name、API key(我是内网模型用任意值填充了)、base_url;
- 定义好模型后,点击“test model”可以测试模型定义的是否真确、是否能正常调用。
3、新建Agent(智能体)
Agent是集合了model和skills的单智能体。
下面是创建Agent的主界面,点击“new Agent”可以创建自己的Agent。
我创建了两个Agent(如下图,分别是myuser_huazhi、my_assistent_huazhi)用于后面的交互,创建Agent的时候需要考虑:
- 主要包括三部分:Agent基本配置、指定model、指定skills;
- 基本配置包括Agent名字、描述、system message等,其中system message起到system prompt的作用;
- model部分可以点击“add”添加自己之前定义的LLM(比如华知7b_32k模型),可以添加多个;
- skills部分与model部分类似,点击add添加之前定义好的skills即可(比如generate_and_save_images);
- myuser_huazhi没有添加任何的model和skills,my_assistent_huazhi添加了华知7b_32k model和generate_and_save_images、generate_and_save_pdf skills。
4、新建workflow(工作流)
workflow是集合了多个智能体的工作流,可以供playground界面创建session的时候选择来完成具体的任务。
整体界面如下,点击“new workflow”可以创建自己的工作流。
创建工作流的时候考虑的问题:
- 第一步是选择工作流的类型,主要两类:autonomous chat类型、sequential类型;
- autonomous chat类型:需要两个智能体,一个作为Initiator,一个作为Receiver;
- sequential类型:需要选择多个智能体,且智能体之间是前后顺序关系(也是他们执行任务的顺序),如下图所示:
- 第二步主要包括两部分:基础配置部分、Agent添加部分;
- 基础配置部分:需要填写工作流名称、描述和总结方式(我选择的llm方式),填好后点击“create workflow”,右侧会出现添加Agent界面;
- 添加Agent部分: sequential类型是直接顺序添加多个Agent,autonomous chat类型如下图所示:Initiator添加的是myuser_huazhi Agent,Receiver添加的是my_assistent_huazhi Agent。
- 第三步是配置完工作流后,点击“test workflow”进行测试,如下图所示:
下面这种问题会根据创建Receiver方Agent的时候给的system message内容回复。
3、多智能体最终效果展示
上面所有的组成部分创建完成后,就可以在playground界面创建sessions了。
- 第一步,新建sessions,需要指定工作流、和session name;
- 第二步,创建完sessions,就可以直接使用聊天对话的方式体验智能体了。下面是各种聊天的结果示例;
- 执行过程中,首先会有意图识别的总结输出,然后结果包括两个部分:
- Agent messages部分:展示聊天内容,即用户的一问一答聊天内容;
- results部分是skills的输出文件,包括图片文件、python代码文件。