Fabric 数据代理概念(预览版)

Microsoft Fabric 中的数据代理是一项新的 Microsoft Fabric 功能,使你能够使用生成式 AI 构建自己的对话问答系统。 Fabric 数据代理让组织中的每个人都能更轻松地获取数据见解,并将其转化为实际举措。 借助 Fabric 数据代理,你的团队可以通过简单的英语问题,围绕组织存储在 Fabric OneLake 中的数据展开交流,并随后获得相关解答。 这样,即使是在 AI 中没有技术专业知识或深入了解数据结构的人也能获得精确且上下文丰富的答案。

还可以添加特定于组织的指令、示例和指南,对 Fabric 数据代理进行微调。 这可确保响应符合组织的需求和目标,使每个人都能够更有效地参与数据。 Fabric 数据代理可促进形成数据驱动决策的文化,因为它降低了获取见解的门槛,促进了协作,并帮助你的组织从数据中提取更多价值。

重要

此功能目前为预览版

先决条件

Fabric 数据代理的工作原理

Fabric 数据代理使用大型语言模型 (LLM) 帮助用户以自然的方式与其数据交互。 Fabric 数据代理应用 Azure OpenAI 助手 API,其行为与代理相似。 它处理用户问题、确定最相关的数据源(Lakehouse、Warehouse、Power BI 数据集、KQL 数据库),并调用相应的工具来生成、验证和执行查询。 然后,用户可以使用纯语言提问并接收结构化、可读的答案,而无需编写复杂的查询并确保准确且安全的数据访问。

下面详细介绍了工作原理:

问题分析和验证:Fabric 数据代理应用 Azure OpenAI 助手 API 作为基础代理来处理用户问题。 此方法可确保问题符合安全协议、负责任的 AI (RAI) 策略和用户权限。 Fabric 数据代理严格执行只读访问,维护与所有数据源的只读数据连接。

数据源标识:Fabric 数据代理使用用户的凭据访问数据源的架构。 这可确保系统提取用户有权查看的数据结构信息。 然后,它会针对所有可用的数据源(包括关系数据库(Lakehouse 和 Warehouse)、Power BI 数据集(语义模型)和 KQL 数据库评估用户的问题。 它还可能引用用户提供的数据代理指令来确定最相关的数据源。

工具调用和查询生成:一旦确定了正确的数据源或多个数据源,Fabric 数据代理会重新阐述问题,以使其更加清晰和结构化,然后调用相应的工具来生成结构化查询:

  • 对于关系数据库(湖屋/仓库),自然语言到 SQL (NL2SQL)。
  • 对于 Power BI 数据集(语义模型),自然语言到 DAX (NL2DAX)。
  • 对于 KQL 数据库,自然语言到 KQL (NL2KQL)。

所选工具会根据提供的架构、元数据和上下文生成查询,这些信息由 Fabric 数据代理所基于的代理进行传递。

查询验证:该工具执行验证以确保查询格式正确,并遵守其自己的安全协议和 RAI 策略。

查询执行和响应:验证后,Fabric 数据代理将对所选数据源执行查询。 结果格式化为人工可读响应,其中可能包括结构化数据,例如表、摘要或关键见解。

此方法可确保用户能够通过自然语言与其数据进行交互,而 Fabric 数据代理则负责处理复杂的查询生成、验证和执行,完全无需用户自行编写 SQL、DAX 或 KQL。

Fabric 数据代理配置

配置 Fabric 数据代理类似于构建 Power BI 报表 - 首先进行设计和完善,以确保其满足需求,然后发布并与同事共享,以便他们能够与数据进行交互。 Fabric 数据代理的设置涉及:

选择数据源:Fabric 数据代理支持最多五个数据源的任意组合,包括数据湖、数据仓库、KQL数据库和 Power BI 语义模型。 例如,经过配置的 Fabric 数据代理可以包含五个 Power BI 语义模型。 它可能包括两个 Power BI 语义模型、一个 lakehouse 和一个 KQL 数据库的组合。 有许多可用选项。

选择相关表:选择数据源后,需要一次添加一个数据源,并定义 Fabric 数据代理将使用的每个源中的特定表。 此步骤确保 Fabric 数据代理仅关注相关数据,从而检索准确的结果。

添加上下文:为了提高 Fabric 数据代理的准确性,可以通过 Fabric 数据代理指令和示例查询提供更多上下文。 作为 Fabric 数据代理所基于的代理,这些上下文有助于 Azure OpenAI 助手 API 就如何处理用户问题做出更明智的决策,并确定最适合用于回答这些问题的数据源。

  • 数据代理指令:可以添加指令,以指导 Fabric 数据代理背后的代理确定回答特定类型问题的最佳数据源。 还可以提供用于阐明组织术语或特定要求的自定义规则或定义。 这些说明可以提供更多上下文或首选项,这些上下文或首选项会影响代理选择和查询数据源的方式。

    • 将有关财务指标的问题直接转至 Power BI 语义模型
    • 将涉及原始数据探索的查询分配至湖屋
    • 对于需要 日志分析 的问题,请将其路由到 KQL 数据库。
  • 示例查询:可以添加示例问题查询对,以说明 Fabric 数据代理应如何响应常见查询。 这些示例充当代理的指南,可帮助它了解如何解释类似问题并生成准确的响应。

注释

Power BI 语义模型数据源目前不支持添加示例查询/问题对。

通过将明确的 AI 说明和相关示例查询组合在一起,可以更好地将 Fabric 数据代理与组织的数据需求保持一致,确保响应更准确且更感知上下文。

Fabric 数据代理与 Copilot 之间的差异

虽然 Fabric 数据代理和 Fabric 助手 (Copilot) 都使用生成式 AI 来处理数据和进行数据推理,但二者的功能和用例存在主要差异:

配置上的灵活性:Fabric 数据代理高度可配置。 可以提供自定义说明和示例,以便根据特定方案定制其行为。 另一方面,Fabric Copilot 是预先配置好的,它们不提供这种级别的定制功能。

范围和用例:Fabric copilots 旨在设计帮助 Microsoft Fabric 中的任务,例如生成工作簿代码或仓库查询。 相比之下,Fabric 数据代理是较为独立的组件。 为了能更灵活地适用于更广泛的用例,Fabric 数据代理可以与外部系统(如 Microsoft Copilot Studio、Azure AI Foundry、Microsoft Teams 或 Fabric 之外的其他工具)集成。

Fabric 数据代理的评估

Fabric 数据代理响应的质量和安全性经过严格的评估:

基准测试:产品团队在一系列公共和专用数据集上测试了 Fabric 数据代理,以确保其提供高质量和准确的响应。

增强型危害缓解措施:实施了更多保障措施,以确保 Fabric 数据代理的输出始终聚焦于所选数据源的上下文,从而降低提供不相关或误导性答案的风险。

局限性

Fabric 据代理目前处于公开预览阶段,并且存在一些限制。 将随时间推移通过更新不断改进 Fabric 数据代理。

  • Fabric 数据代理可以通过为涉及事实、总数、排名或筛选器的问题生成结构化查询(SQL、DAX 或 KQL)来检索数据。 但是,它无法解释趋势、提供解释或分析根本原因。
  • Fabric 数据代理仅生成 SQL/DAX/KQL“读取”查询。 它不会生成创建、更新或删除数据的 SQL/DAX/KQL 查询。
  • Fabric 数据代理只能访问提供的数据。 它仅使用你提供的数据资源配置。
  • Fabric 数据代理所拥有的数据访问权限与和 Fabric 数据代理交互的用户的权限相匹配。 当 Fabric 数据代理发布到其他位置(例如适Microsoft Copilot Studio、Azure AI Foundry 和 Microsoft Teams)时,情况确实如此。
  • 无法向 Fabric 数据代理添加五个以上的数据源。
  • 无法使用 Fabric 数据代理访问非结构化数据资源。 例如,此类资源包括 .pdf、.docx 或 .txt 文件。
  • Fabric 数据代理会阻止非英语问题或指令。
  • 无法更改 Fabric 数据代理使用的 LLM。
  • 如果 KQL 数据库包含超过 1,000 个表或包含 100 个以上的列的任何表,则不能将 KQL 数据库添加为数据源。
  • 如果 Power BI 语义模型总共包含 100 个以上的列和度量值,则不能将 Power BI 语义模型添加为数据源。
  • Fabric 数据代理在跨所有数据源选择 25 个或更少的表时,能够发挥最佳性能。
  • 非描述性数据资源列和表名对生成的 SQL/DAX/KQL 查询质量产生重大负面影响。 我们建议使用描述性名称。
  • 使用过多的列和表可能会降低 Fabric 数据代理性能。
  • Fabric 数据代理目前主要用于处理简单的查询。 需要许多联接或复杂逻辑的复杂查询往往可靠性较低。
  • 如果将 Power BI 语义模型添加为数据源,Fabric 数据代理不会使用任何隐藏的表、列或度量值。
  • 如果之前创建了使用数据仓库作为数据源的 Fabric 数据代理,且该仓库位于不托管该 Fabric 数据代理的工作区中,则可能会遇到错误。 若要解决此问题,请删除现有数据源,然后再次添加它。
  • 若要将 Power BI 语义模型添加为 Fabric 数据代理的数据源,需要具有对该 Power BI 语义模型的读/写权限。 查询使用 Power BI 语义模型的 Fabric 数据代理还需要具有对基础 Power BI 语义模型的读/写权限。
  • Fabric 数据代理有可能返回不正确的答案。 应与同事测试 Fabric 数据代理,以验证它是否按预期回答问题。 如果出错,请提供更多示例和指令。
  • 如果之前创建并发布过 Fabric 数据代理,并且以编程方式使用过其 URL,则如果在 Fabric 数据代理新用户界面页中打开该 Fabric 数据代理,该 URL 将不再有效。 若要解决此问题,需要重新发布 Fabric 数据代理,并使用基于助手 API 的新 URL。