Microsoft Fabric中的数据代理是一项正式版功能,可以通过生成式AI构建自己的对话问答系统。Fabric数据代理使组织中每个人都能更容易地访问和使用数据见解。 通过使用Fabric数据代理,你的团队可以就组织存储在Fabric OneLake中的数据进行对话,提出纯英语问题,并收到相关答案。 这样,即使是在 AI 中没有技术专业知识或深入了解数据结构的人也能获得精确且上下文丰富的答案。 在 Microsoft Fabric 中更广泛的智能应用程序架构中,数据代理充当对话分析组件,通过数据湖屋、数据仓库、语义模型和多代理解决方案中的 KQL 数据库连接到 OneLake 中的受治理数据。
还可以添加特定于组织的说明、示例和指南,以微调Fabric数据代理。 此方法可确保响应与组织的需求和目标保持一致,使每个人都能够更有效地参与数据。 Fabric数据代理促进数据驱动的决策文化,因为它降低了见解可访问性障碍、促进协作并帮助组织从其数据中提取更多价值。
先决条件
- 付费的 F2 或更高版本的 Fabric 容量,或启用了 Microsoft Fabric 的 Power BI Premium 按容量(P1 或更高)容量。
- 已启用Fabric数据代理租户设置,包括容量可指定为Fabric Copilot容量设置。
- 启用了 AI 的跨地理位置处理 。
- 已启用适用于 AI 的跨地理位置存储。
- 至少有一个包含数据:仓库、lakehouse、一个或多个Power BI语义模型、KQL 数据库或本体。
- 通过 XMLA 端点租户切换为 Power BI 语义模型数据源启用 Power BI 语义模型。
- 对于与数据代理一起使用的Power BI语义模型,请确保通过代理交互的用户对语义模型具有读取权限。 进行交互不需要工作区成员身份或构建权限。
治理先决条件
如果租户或工作区受Microsoft Purview策略的约束,代理必须在这些策略中运行。 以下 Purview 策略可以根据敏感度和策略配置限制代理访问和代理返回的结果:
- Fabric Data Warehouse 中的Purview DLP 策略(正式发布):DLP 策略可以检测和限制对代理查询的仓库资产中的敏感数据的访问。
- Fabric KQL 数据库、Fabric SQL 数据库和Fabric Data Warehouse的Access 限制策略(预览版):这些策略可以防止代理访问或返回分类为敏感资产的结果。
Fabric数据代理的工作原理
Fabric数据代理使用大型语言模型(LLM)来帮助用户自然地与其数据进行交互。 Fabric数据代理应用Azure OpenAI 助手 API,其行为与代理类似。 它处理用户问题、确定最相关的数据源(Lakehouse、Warehouse、Power BI数据集、KQL 数据库、本体或Microsoft Graph),并调用相应的工具来生成、验证和执行查询。 然后,用户可以用纯语言提问,并接收结构化的、可读的答案。 此方法无需编写复杂的查询,并确保准确且安全的数据访问。
下面详细介绍了工作原理:
查询分析和验证:Fabric数据代理将Azure OpenAI 助手 API 作为处理用户问题的基础代理。 此方法可确保问题符合安全协议、负责任的 AI (RAI) 策略和用户权限。 Fabric数据代理还遵循应用于基础Fabric数据源的Microsoft Purview治理控制,包括数据丢失防护(DLP)和访问限制策略。 策略强制实施可能会阻止某些查询运行或阻止特定数据在响应中显示。 Fabric数据代理严格强制实施只读访问,维护与所有数据源的只读数据连接。
实施机制:Fabric 数据代理在处理过程中应用多层保护。 它利用请求用户的凭据和权限来实施最小特权访问,确保每次交互仅访问用户有权查看的数据。 在执行任何操作之前,代理会针对租户和工作区策略设置评估请求。 防护措施将工具调用和输出限制为限定范围的数据源,从而阻止查询到达配置范围之外的资源。 可以选择集成 Azure AI 内容安全 以应用有助于减少有害或策略外响应的内容风险控制。
数据源标识:Fabric数据代理使用用户的凭据访问数据源的架构。 此方法可确保系统提取用户有权查看的数据结构信息。 然后,代理会针对所有可用的数据源(包括关系数据库(Lakehouse 和 Warehouse)、Power BI数据集(语义模型)、KQL 数据库、本体和Microsoft Graph评估用户的问题。 它还可能引用用户提供的数据代理指令来确定最相关的数据源。 对于Power BI语义模型,代理使用用户对模型的读取权限来检索架构和元数据进行查询生成;代理驱动的查询不需要生成权限。
Tool 调用和查询生成:一旦确定了正确的数据源或多个数据源,Fabric 数据代理会将问题重新表述以便更清晰和结构化,然后调用相应的工具以生成结构化查询。
- 对于关系数据库(湖屋/仓库),自然语言到 SQL (NL2SQL)。
- 自然语言到DAX(NL2DAX)应用于Power BI数据集(语义模型)。
- 对于 KQL 数据库,自然语言到 KQL (NL2KQL)。 NL2KQL 可以在所选数据库中可用时使用 KQL 用户定义的函数(UDF)。
- Microsoft Graph 查询可通过 Microsoft Graph 访问的组织数据。
所选工具根据提供的架构、元数据和上下文生成一个查询,然后将其传递给底层的Fabric数据代理。
查询验证:该工具执行验证以确保查询格式正确,并遵守其自己的安全协议和 RAI 策略。
Query 执行和响应:验证后,Fabric数据代理将针对所选数据源执行查询。 结果格式化为人工可读响应,其中可能包括结构化数据,例如表、摘要或关键见解。
通过使用此方法,用户可以使用自然语言与其数据进行交互。 Fabric数据代理处理查询生成、验证和执行的复杂性。 用户无需自行编写 SQL、DAX 或 KQL。
使用 Microsoft Purview 进行安全和治理
Microsoft Purview为Fabric数据代理提供治理和风险控制。 这些功能目前以预览版提供,可帮助组织在使用代理访问Fabric数据时保持合规性。 关键功能包括:
- Risk 发现和审核:来自Fabric数据代理的提示和响应可能会受到 Purview 风险发现和审核的约束,使安全团队能够了解代理如何与组织数据交互。
- DSPM 数据风险评估:数据安全状况管理(DSPM)数据风险评估可以在代理使用的数据源中显示敏感数据风险,帮助你识别和解决潜在风险。
- 内部风险管理:Purview Insider Risk Management 可以检测涉及代理的风险 AI 使用模式,例如异常查询量或敏感数据访问。
- 审核、电子数据展示和保留:Purview 审核、电子数据展示和保留策略适用于受支持的 Fabric 工作负载中的代理交互和输出。 不符合使用情况检测还可以标记违反组织策略的代理活动。
有关如何Microsoft Purview与Fabric集成的详细信息,请参阅 使用 Microsoft Purview 来管理 Microsoft Fabric。
Fabric数据代理配置
配置Fabric数据代理类似于生成Power BI报表,首先对其进行设计和优化,以确保它满足需求,然后与同事发布和共享它,以便他们可以与数据进行交互。 设置Fabric数据代理涉及:
选择数据源:Fabric数据代理程序支持在任意组合中最多五个数据源,包括数据湖屋、数据仓库、KQL 数据库、Power BI 语义模型、本体论和 Microsoft Graph。 例如,配置的Fabric数据代理可能包括五个Power BI语义模型。 它可能包括两个Power BI语义模型、一个 lakehouse 和一个 KQL 数据库的组合。 有许多可用选项。
选择相关表:选择数据源后,一次添加一个,并定义Fabric数据代理使用的每个源的特定表。 此步骤可确保Fabric数据代理通过仅关注相关数据来获取准确的结果。 对于数据湖仓,此步骤意味着选择数据湖仓的表(而不是单独的数据湖仓文件)。 如果数据以文件(例如 CSV 或 JSON)开头,则通过将数据引入表或通过表公开它,使其可供代理使用。
添加上下文:若要提高Fabric数据代理的准确性,请通过Fabric数据代理说明和示例查询提供更多上下文。 作为Fabric数据代理的基础代理,上下文可帮助Azure OpenAI 助手 API 做出有关如何处理用户问题的更明智的决策,并确定最适合回答用户的数据源。
数据代理指令:添加指令以指导Fabric数据代理的基础逻辑,以确定用于回答特定类型问题的最佳数据源。 还可以提供用于阐明组织术语或特定要求的自定义规则或定义。 这些说明可以提供更多上下文或首选项,这些上下文或首选项会影响代理选择和查询数据源的方式。 例如,将有关 财务指标的直接问题定向到Power BI语义模型,将涉及 raw 数据浏览的查询分配给 lakehouse,并将需要 log 分析的问题路由到 KQL 数据库。
示例查询:添加示例问题-查询对,说明Fabric数据代理如何响应常见查询。 这些示例充当代理的指南,可帮助它了解如何解释类似问题并生成准确的响应。
注释
目前不支持Power BI语义模型数据源添加示例查询/问题对。
通过将明确的 AI 说明和相关示例查询组合在一起,可以更好地将Fabric数据代理与组织的数据需求保持一致,确保响应更准确且更感知上下文。
重要
开发人员提供的数据代理说明和示例查询必须在组织和基于角色的约束内运行。 如果说明或提示与策略发生冲突(例如,尝试绕过只读行为或访问范围外源),则代理会根据以下部分中所述的优先模型拒绝或重定向请求。
治理层和意向层
配置Fabric数据代理时,多个意向层可能会影响代理的行为方式。 这些层从最高到最低优先级列出,定义允许代理执行的操作:
- 组织意图:组织管理员设置的租户范围策略和合规性要求。 这些约束具有最高优先级,不能被任何其他层重写。
- 基于角色的意向:适用于特定角色或组的工作区治理设置和权限边界。 这些设置强制实施访问控制和数据范围限制。
- 开发人员意向:生成数据代理时提供的自定义说明、示例查询和数据源配置。
- 用户意向:与代理对话期间最终用户提交的问题和提示。
当层之间发生冲突时,优先级较高的层会覆盖较低的层。 例如,组织策略和工作区治理设置始终替代开发人员说明和用户提示。 此优先模型可确保代理在批准的边界内运行,无论其是如何配置或提示的。
Fabric 数据代理与 Copilot 之间的区别
虽然Fabric数据代理和Fabric copilot 都使用生成 AI 来处理和推理数据,但其功能和用例中存在主要差异:
配置灵活性:可以高度配置Fabric数据代理。 可以提供自定义说明和示例,以便根据特定方案定制其行为。 相比之下,Fabric copilots 是预先配置的,无法提供这种程度的自定义。
范围和用例:Fabric智能助手可协助执行在Microsoft Fabric中的任务,例如生成笔记代码或仓库查询。 相比之下,Fabric数据代理是独立的可配置项目,可以跨 OneLake 和语义模型查询数据。 Fabric数据代理还可以与智能 Microsoft 365 Copilot 副驾驶®集成,直接在Microsoft 365应用中显示自然语言见解。 通过智能 Microsoft 365 Copilot 副驾驶®访问代理时,Microsoft Purview治理策略仍适用于基础数据源。 此外,Fabric数据代理可以连接到外部系统,例如Microsoft Copilot Studio、Azure AI Foundry、Microsoft Teams或其他Fabric外部工具。 外部业务流程协调程序和多代理运行时可以调用Fabric数据代理来支持端到端代理工作流,而数据代理仍专注于只读的受管理的数据访问。
Fabric数据代理的评估
产品团队严格评估了Fabric数据代理响应的质量和安全性:
Benchmark Testing:产品团队在一系列公共和专用数据集中测试了Fabric数据代理,以确保高质量的准确响应。
增强危害防范措施:产品团队实施了防范措施,以确保Fabric数据代理的输出继续专注于所选数据源的上下文,从而减少出现无关或误导性答案的风险。
治理和安全性
Microsoft Purview 整合为 Fabric 数据代理提供治理控制。 配置数据代理时,Purview 治理策略适用于代理可以访问的基础数据源。 此集成有助于确保通过代理访问的数据遵循与直接访问相同的符合性和分类规则。
Microsoft Purview策略:数据访问控制和敏感度标签等 Purview 策略适用于代理查询的数据源。 如果 Purview 策略限制对 lakehouse 或仓库的访问,则代理在处理用户查询时会遵循该限制。
出站访问保护:Fabric 数据代理在租户的出站访问保护边界内运行。 代理操作的出站连接受为 Fabric 租户配置的相同网络和访问规则的约束。 管理员可以通过租户设置下的Fabric管理门户管理允许的出站连接,以控制代理可以访问的外部终结点。
智能 Microsoft 365 Copilot 副驾驶®集成:Fabric数据代理通过智能 Microsoft 365 Copilot 副驾驶®浮出水面时,Purview 治理策略将继续应用。 无论入口点如何,用户只能访问其凭据和 Purview 策略允许的数据。
用于数据代理的 ALM 和 DevOps
Fabric数据代理支持应用程序生命周期管理(ALM)功能,这些功能可帮助你跨开发、测试和生产环境管理代理配置。
诊断:使用内置诊断来监视代理行为、识别查询生成问题以及排查响应质量问题。 诊断提供代理如何处理问题和选择数据源的可见性。
Git 集成:可以使用 Git 集成对代理配置进行版本控制。 将Fabric工作区连接到 Git 存储库,以跟踪一段时间内代理指令、示例查询和数据源选择的更改。
部署管道:使用Fabric部署管道在不同工作区之间(例如,从开发到生产)迁移数据代理。 通过此支持,可以在过渡环境中测试更改,然后再将其提供给最终用户。
操作监督
若要保持持续的质量和策略一致性,请考虑Fabric数据代理的以下操作做法:
- 日志记录和审核:通过可用的日志记录和审核功能监视代理交互。 查看查询模式和响应质量有助于尽早识别意外行为。
- 人机协同升级:为敏感或高影响力的请求建立升级路径。 对于自动响应不足的方案,请定义将问题路由到合格审阅者的过程。
- 定期评审:定期查看数据代理说明和示例查询,以确保它们与当前的组织策略和数据结构保持一致。 当数据源或业务需求发生更改时,请相应地更新代理配置。
局限性
- Fabric数据代理仅生成 SQL、DAX 和 KQL“读取”查询。 它不会生成创建、更新或删除数据的 SQL、DAX 或 KQL 查询。
- Fabric数据代理不支持非结构化数据,例如 .pdf、.docx或 .txt 文件。 无法使用Fabric数据代理访问非结构化数据资源。
- 对于 lakehouse 数据源,Fabric 数据代理使用您选择的 lakehouse 表来回答问题。 它不会直接读取独立的 Lakehouse 模型文件(例如 CSV 或 JSON 文件),除非它们作为表引入或公开。
- Fabric数据代理目前不支持非英语语言。 为了获得最佳性能,请用英语提供问题、说明和示例查询。
- 无法更改Fabric数据代理使用的 LLM。
- Fabric数据代理中的会话历史记录可能不会始终保留。 在某些情况下,例如后端基础结构更改、服务更新或模型升级,过去的会话历史记录可能会重置或丢失。
- 当数据源的工作区容量与数据代理的工作区容量不同时,Fabric数据代理无法执行查询。 例如,位于北欧的湖仓(Lakehouse)如果数据代理的容量在法国中部,则将发生故障。
- 用户可以在其数据代理中为每个数据源提供最多 100 个示例查询。
- Fabric数据代理目前设计用于对话见解,而不是返回完整的数据集。 为了确保简洁且高性能的响应,聊天输出会自动限制和/或汇总返回的数据。 目前,响应上限为 25 行和 25 列。 请注意,以前的聊天历史记录可能会影响后续响应。 例如,如果要求“显示今年的所有行”,代理仍将返回最多 25 行。 然后,可以根据此已有限的上下文回答后续问题,这可能会影响结果。 在这种情况下,建议启动新的聊天会话。
- 如果Microsoft Purview DLP 或访问限制策略适用于基础数据源,则代理响应可能会被截断或阻止。 特定行为取决于组织的策略配置。
- 被 Purview 策略标记为敏感的资产可能无法访问代理,这可能会导致未完成的答案或无法查询某些数据源。
- 可以通过Microsoft Purview 审核和电子数据展示来记录和发现代理交互。 在为敏感工作负荷部署代理时,组织应考虑这些治理控制措施。
- 通过数据代理访问Power BI语义模型受模型读取权限控制,不需要工作区级访问。 Row-Level Security(RLS)和 Column-Level Security(CLS)依然适用。