Skip to main content

One post tagged with "web"

View All Tags

· 16 min read
Victor Dibia
Gagan Bansal
Saleema Amershi

AutoGen Studio Playground View: 使用多智能体解决生成带有图像的 PDF 文档的任务。

AutoGen Studio:使用多智能体解决生成带有图像的 PDF 文档的任务。

TL;DR

为了帮助您快速原型化多智能体解决方案,我们推出了 AutoGen Studio,这是一个由 AutoGen 提供支持的界面。它可以让您:

  • 通过点选和拖放界面(例如,您可以选择两个智能体的参数,它们将进行通信以解决您的任务)来声明性地定义和修改智能体和多智能体工作流程。
  • 使用我们的用户界面与指定的智能体创建聊天会话并查看结果(例如,查看聊天历史记录、生成的文件和所需时间)。
  • 明确地为您的智能体添加技能并完成更多任务。
  • 将您的会话发布到本地画廊。

有关更多详细信息,请参阅官方 AutoGen Studio 文档此处

AutoGen Studio 是开源的,代码在这里,可以通过 pip 安装。试试看吧!

pip install autogenstudio

简介

技术的加速发展使我们进入了一个数字助手(或智能体)成为我们生活中不可或缺的一部分的时代。AutoGen 已经成为一个领先的框架,用于协调智能体的力量。为了扩展这个领域并使这种能力民主化,我们非常高兴地推出了一个新的用户友好界面:AutoGen Studio

使用 AutoGen Studio,用户可以快速创建、管理和与可以学习、适应和协作的智能体进行交互。在将这个界面发布到开源社区时,我们的目标不仅是提高生产力,还要激发人与智能体之间个性化互动的水平。

注意:AutoGen Studio 旨在帮助您快速原型化多智能体工作流程,并演示使用 AutoGen 构建的最终用户界面的示例。它不是一个可用于生产的应用程序。

使用 AutoGen Studio 入门

以下指南将帮助您在系统上启动和运行 AutoGen Studio。

配置 LLM 提供程序

要开始使用,您需要访问一个语言模型。您可以按照 AutoGen 文档此处的步骤进行设置。使用 OPENAI_API_KEYAZURE_OPENAI_API_KEY 配置您的环境。

例如,在终端中,您可以像这样设置 API 密钥:

设置 OPENAI_API_KEY=<你的 API 密钥>

您还可以在以下示例中直接在代理配置中指定模型。

llm_config = LLMConfig(
config_list=[{
"model": "gpt-4",
"api_key": "<azure_api_key>",
"base_url": "<azure api base url>",
"api_type": "azure",
"api_version": "2024-02-01"
}],
temperature=0,
)

安装

有两种安装 AutoGen Studio 的方法 - 从 PyPi 或从源代码安装。我们建议从 PyPi 安装,除非您计划修改源代码。

  1. 从 PyPi 安装

    我们建议使用虚拟环境(例如 conda)以避免与现有 Python 包的冲突。在您的虚拟环境中激活 Python 3.10 或更新版本后,使用 pip 安装 AutoGen Studio:

    pip install autogenstudio
  2. 从源代码安装

    注意:这种方法需要对 React 中的构建界面有一定的了解。

    如果您希望从源代码安装,请确保已安装 Python 3.10+ 和 Node.js(版本大于 14.15.0)。以下是开始的方法:

    • 克隆 AutoGen Studio 仓库并安装其 Python 依赖项:

      pip install -e .
    • 导航到 samples/apps/autogen-studio/frontend 目录,安装依赖项并构建 UI:

      npm install -g gatsby-cli
      npm install --global yarn
      yarn install
      yarn build

    对于 Windows 用户,要构建前端,您可能需要使用 autogen studio readme 中提供的替代命令。

运行应用程序

安装完成后,在终端中输入以下命令运行 Web UI:

autogenstudio ui --port 8081

这将在指定的端口上启动应用程序。打开您的 Web 浏览器并转到 http://localhost:8081/,开始使用 AutoGen Studio。

现在,您已经安装并运行了 AutoGen Studio,可以开始探索其功能,包括定义和修改代理工作流、与代理和会话交互以及扩展代理技能。

AutoGen Studio 能做什么?

AutoGen Studio UI 分为 3 个高级部分 - 构建PlaygroundGallery

构建

指定代理。

该部分专注于定义代理和代理工作流的属性。它包括以下概念:

技能:技能是描述如何解决任务的函数(例如 Python 函数)。通常,一个好的技能具有描述性的名称(例如 generate_images),详细的文档字符串和良好的默认值(例如,将文件写入磁盘以进行持久化和重用)。您可以通过提供的 UI 向 AutoGen Studio 添加新的技能。在推理时,这些技能将作为辅助代理的可用技能,以解决您的任务。

查看和添加技能。

AutoGen Studio 构建视图:查看、添加或编辑代理人在处理任务时可以利用的技能。

代理人:这提供了一个界面,用于声明性地指定 AutoGen 代理人的属性(与基本的 AutoGen 可对话代理人 类的大部分成员相同)。

代理人工作流:代理人工作流是指一组可以共同完成任务的代理人的规范。最简单的版本是设置两个代理人 - 一个用户代理人(代表用户,即编译代码并打印结果)和一个助手,可以处理任务请求(例如生成计划、编写代码、评估响应、提出错误恢复步骤等)。更复杂的流程可以是一个群聊,其中更多的代理人共同努力解决问题。

游乐场

AutoGen Studio 游乐场视图:使用多个可以生成带有图片的 PDF 文档的代理人解决任务。

AutoGen Studio 游乐场视图:代理人协作,利用可用技能(生成图片的能力)来处理用户任务(生成 PDF)。

游乐场部分专注于与前面构建部分中定义的代理人工作流进行交互。它包括以下概念:

会话:会话指的是与代理人工作流的连续交互或参与期,通常通过一系列旨在实现特定目标的活动或操作来描述。它包括代理人工作流配置以及用户和代理人之间的交互。会话可以“发布”到“画廊”。

聊天视图:聊天是用户和代理人之间的一系列交互的序列。它是会话的一部分。

画廊

这一部分专注于共享和重用工件(例如工作流配置、会话等)。

AutoGen Studio 自带了 3 个示例技能:fetch_profilefind_papersgenerate_images。请随意查看存储库以了解它们的工作原理。

AutoGen Studio API

虽然 AutoGen Studio 是一个 Web 界面,但它由一个可重用和模块化的底层 Python API 提供支持。重要的是,我们实现了一个 API,可以以声明性的方式指定代理人工作流(以 JSON 格式),加载和运行。下面是当前 API 的示例。请参阅AutoGen Studio 存储库以获取更多详细信息。

import json
from autogenstudio import AutoGenWorkFlowManager, AgentWorkFlowConfig

# 加载一个以 JSON 格式存储的 agent 规范
agent_spec = json.load(open('agent_spec.json'))

# 从 agent 规范创建一个 AutoGen 工作流配置
agent_work_flow_config = FlowConfig(**agent_spec)

# 从配置创建一个工作流
agent_work_flow = AutoGenWorkFlowManager(agent_work_flow_config)

# 在一个任务上运行工作流
task_query = "巴黎铁塔的高度是多少?"
agent_work_flow.run(message=task_query)

路线图和下一步计划

在我们继续开发和完善 AutoGen Studio 的过程中,下面的路线图概述了未来版本中计划的一系列增强和新功能。以下是用户可以期待的内容:

  • 复杂的代理工作流程:我们正在努力集成对更复杂的代理工作流程的支持,例如 GroupChat,允许多个代理之间或动态拓扑之间进行更丰富的交互。
  • 改进的用户体验:这包括诸如实时反馈中间模型输出、更好地总结代理响应、每次交互的成本信息等功能。我们还将致力于改进组合和重用代理的工作流程。我们还将探索对代理提供更多交互式人工反馈的支持。
  • 扩展代理技能:我们将努力改进代理技能的创作、组合和重用工作流程。
  • 社区功能:在 AutoGen Studio 用户社区内进行共享和协作是一个重要目标。我们正在探索更方便地在用户之间共享会话和结果的选项,并为技能、代理和代理工作流程建立一个共享的存储库。

贡献指南

我们欢迎对 AutoGen Studio 的贡献。我们建议按照以下一般步骤来为项目做出贡献:

  • 查看整体的 AutoGen 项目贡献指南
  • 请查看 AutoGen Studio 的路线图,了解当前项目的优先事项。特别需要帮助的是带有 help-wanted 标签的 Studio 问题。
  • 请在路线图问题或新问题上发起讨论,讨论您提出的贡献。
  • 请查看此处的 autogenstudio dev 分支 [dev branch].(https://github.com/microsoft/autogen/tree/autogenstudio),并将其用作贡献的基础。这样,您的贡献将与 AutoGen Studio 项目的最新更改保持一致。
  • 提交一个拉取请求,贡献您的代码!
  • 如果您在 vscode 中修改 AutoGen Studio,它有自己的 devcontainer 来简化开发工作。请参阅 .devcontainer/README.md 中的说明。
  • 请在与 Studio 相关的任何问题、疑问和拉取请求中使用标签 studio

常见问题

问:我在哪里可以调整默认的技能、代理和工作流配置? 答:您可以直接从用户界面修改代理配置,或者编辑 autogentstudio/utils/dbdefaults.json 文件来初始化数据库。

问:如果我想重置与代理的整个对话,我该怎么做? 答:要重置您的对话历史记录,您可以删除 database.sqlite 文件。如果您需要清除特定用户的数据,请删除相关的 autogenstudio/web/files/user/<user_id_md5hash> 文件夹。 问:在交互过程中,是否可以查看代理生成的输出和消息? 答:是的,您可以在Web UI的调试控制台中查看生成的消息,从而了解代理之间的交互情况。另外,您还可以检查database.sqlite文件,以获取完整的消息记录。

问:我在哪里可以找到AutoGen Studio的文档和支持? 答:我们不断努力改进AutoGen Studio。有关最新更新,请参阅AutoGen Studio自述文件。如果需要额外的支持,请在GitHub上提出问题或在Discord上提问。

问:我可以在AutoGen Studio中使用其他模型吗? 答:可以。AutoGen采用了openai模型API格式的标准化,您可以使用任何提供openai兼容端点的API服务器。在AutoGen Studio的UI中,每个代理都有一个llm_config字段,您可以在其中输入模型端点的详细信息,包括模型名称API密钥基本URL模型类型API版本。对于Azure OpenAI模型,您可以在Azure门户中找到这些详细信息。请注意,对于Azure OpenAI,模型名称是部署ID或引擎,而模型类型是"azure"。对于其他开源模型,我们建议使用类似vllm的服务器来实例化一个openai兼容的端点。

问:服务器已启动,但无法访问UI界面 答:如果您在远程机器上运行服务器(或本地机器无法正确解析localhost),您可能需要指定主机地址。默认情况下,主机地址设置为localhost。您可以使用--host <host>参数指定主机地址。例如,要在端口8081上启动服务器,并使用本地地址,以便从网络上的其他机器访问,可以运行以下命令:

autogenstudio ui --port 8081 --host 0.0.0.0