本文档介绍了使用 Conversational Analytics API (geminidataanalytics.googleapis.com
) 的关键概念。借助该 API,您可以创建数据智能体并与其交互,这些智能体能够使用自然语言回答有关结构化数据的问题。本文档介绍了智能体的工作原理、典型工作流、对话模式、Identity and Access Management (IAM) 角色,以及如何设计多智能体系统。
数据智能体的工作原理
Conversational Analytics API 数据智能体使用您提供的上下文(业务信息和数据)和工具(例如 SQL 和 Python)来解读自然语言问题,并根据结构化数据生成回答。
下图展示了用户提出问题时智能体工作流的各个阶段:
如图所示,当用户提出问题时,智能体会按以下阶段处理请求:
- 用户输入:用户以自然语言提交问题,并附带您提供的其他上下文信息。
- 数据源:智能体会连接 Looker、BigQuery 和 Looker Studio 的数据,以获取所需信息。
- 推理引擎:作为智能体的核心,它通过使用可用工具处理用户问题并生成答案。
- 智能体输出:智能体生成回答,可能包含文本、数据表或图表规范。
设计和使用智能体的工作流
Conversational Analytics API 支持两类工作流:智能体创建者(负责构建和配置智能体)与智能体使用者(与智能体进行互动)。
下图展示了整个端到端流程,从智能体创建者的初始设置到智能体使用者的最终互动:
以下部分将更详细地介绍智能体创建者和智能体使用者的工作流。
智能体创建者工作流
智能体创建者负责设置与配置智能体。此工作流涉及以下步骤:
- 创建智能体:创建者首先创建一个新智能体,并提供必要的上下文,包括系统指令以及与数据源的连接。此步骤对于帮助智能体有效理解并回答用户问题至关重要。
- 共享智能体:配置完成后,创建者会将智能体共享给其他用户,并设置基于角色的访问控制以管理权限。
智能体使用者工作流
智能体使用者通常是需要从已配置的智能体处获取答案的商业用户。此工作流涉及以下步骤:
- 查找智能体:用户首先找到已共享给自己的智能体。
- 提出问题:用户以自然语言提出问题。此问题可以是单个查询,也可以是多轮对话的一部分。
- 智能体“思考”:由智能体的推理引擎来处理问题。推理引擎会在“推理循环”中使用智能体的预定义知识和可用工具(如 SQL、Python 和图表),以确定回答问题的最佳方式。
- 智能体回答:智能体返回的答案可能包含文本、数据表或图表。
对话模式
Conversational Analytics API 智能体支持多种对话模式,这些模式决定了智能体如何处理对话历史,并在多次互动中保持上下文的延续性。以下对话模式可供选择:
- 无状态模式:智能体不会存储对话记录。每次互动都会单独处理。此模式适用于无需在多个对话轮次中保持上下文的应用。
- 有状态模式:智能体保留上下文和对话记录,从而实现更具上下文关联性的互动。此模式适用于需要在多轮对话中保持上下文的应用。建议使用有状态模式,以获得更高的准确率和更加个性化的回答。
请根据应用对对话记录和上下文持久性的需求选择对话模式。
IAM 角色
IAM 角色决定哪些人可以创建、管理、共享以及与 Conversational Analytics API 智能体互动。下表介绍了 Conversational Analytics API 的关键 IAM 角色:
角色 | 典型范围 | 该角色的权限范围 | 可能使用此角色的人员 |
---|---|---|---|
Gemini Data Analytics Data Agent Creator (roles/geminidataanalytics.dataAgentCreator ) |
项目 | 创建智能体并继承该智能体的所有者权限。 | 任何数据分析师 |
Gemini Data Analytics Data Agent Owner (roles/geminidataanalytics.dataAgentOwner ) |
项目、智能体 | 可与其他用户一起修改、共享或删除智能体。 | 高级数据分析师 |
Gemini Data Analytics Data Agent Editor (roles/geminidataanalytics.dataAgentEditor ) |
智能体、项目 | 更新智能体的配置或上下文。 | 初级数据分析师 |
Gemini Data Analytics Data Agent User (roles/geminidataanalytics.dataAgentUser ) |
智能体、项目 | 与智能体进行对话。 | 营销人员、商店所有者 |
Gemini Data Analytics Data Agent Viewer (roles/geminidataanalytics.dataAgentViewer ) |
项目、智能体 | 列出智能体并获取其详细信息。 | 任何用户 |
Gemini Data Analytics Data Agent Stateless User (roles/geminidataanalytics.dataAgentStatelessUser ) |
项目 | 与智能体进行对话,且不会存储上下文或对话历史记录。 | 任何用户 |
包含多个智能体的系统
您可以通过集成多个 Conversational Analytics API 智能体来设计复杂系统。一种常见模式是使用“主编排器”智能体,将任务委托给一个或多个负责特定领域(如销售或营销数据)的专业智能体。借助这种方法,您可以结合多个智能体的优势,构建能够处理各类问题的系统。
下图展示了这种多智能体模式,并说明“主编排器”智能体如何将数据问题委托给专门的 Conversational Analytics 智能体:
多智能体系统的典型工作流包括以下步骤:
- 业务用户或数据分析师以自然语言提出问题,例如:“按营收显示排名前三的门店”。
- “主编排器”智能体将请求委托给相应的专业智能体。
- 专业智能体收到委托请求,连接相关数据源,使用其工具生成必要的 SQL 查询和图表,并生成回答。
- 专业智能体的回答返回给用户,例如:“商店 4、9 和 3 的营收最高。这是图表。”
后续步骤
了解 Conversational Analytics API 的核心概念后,建议继续探索如何实现以下功能:
- 了解如何进行身份验证并连接到数据源。
- 了解如何使用 HTTP 创建并配置智能体。
- 了解如何使用 Python 创建并配置智能体。
- 详细了解如何使用编写的上下文来引导智能体的行为。
- 了解如何 Conversational Analytics API 的 IAM 访问控制。