策展有效的 Genie 空间

重要

此功能目前以公共预览版提供。

策展 Genie 空间的目标是创建一个环境,在该环境中,业务用户能够提出自然语言问题,并根据其数据获得准确、一致的答案。 Genie 空间使用高级模型来生成复杂的查询并理解一般世界知识。

大多数业务问题都是领域特定的,因此空间策展者的作用是弥合该世界知识与特定领域或特定公司使用的专业语言之间的差距。 策展者使用元数据和说明帮助 Genie 准确地解释和回复业务用户的问题。 本文概述了指导你开发成功空间的最佳做法和原则。

定义新空间的最佳做法

下面各部分推荐了创建有效空间的做法。

从小规模开始

策划 Genie 空间是一个迭代过程。 创建新空间时,请尽可能从小型开始,提供最少的说明和一组有限的问题来回答。 然后,可以根据反馈和监视进行迭代时添加内容。 这种方法有助于简化空间的创建和维护,并让你能够根据实际用户需求有效地策展空间。

按照以下指南帮助创建一个小型 Genie 空间:

  • 保持专注:只包括回答你想要空间处理的问题所需的表。 目标是 5 个或更少的表。 你的选择越专注,效果越好。 理想情况是使空间狭窄地专注于少量数据,因此请限制所含表中的列数。
  • 计划循环访问:首先为空间设置最少,重点介绍基本表和基本说明。 在优化一段时间内的空间时,添加更详细的指导和示例,而不是最初旨在完美。
  • 基于注释良好的表构建:Genie 使用 Unity Catalog 列名称和描述来生成回复。 清晰的列名称和描述有助于生成高质量的回复。 列描述应提供精确的上下文信息。 不要提供含义不明确或不必要的细节。 检查任何 AI 生成的描述是否准确和清晰,并且仅在这些描述与你手动提供的内容一致时才使用它们。

让领域专家来定义空间

有效的空间创建者需要理解数据以及可从中收集到的见解。 精通 SQL 的数据分析师通常具有策划空间的知识和技能。

定义空间的用途

确定空间的特定受众和用途有助于确定要使用的数据、说明和测试问题。 空间应回答特定主题和受众的问题,而不是回答跨多个领域的一般性问题。

测试和调整

你应该是你的空间的第一个用户。 创建新空间后,开始提问。 仔细检查在回答问题时生成的 SQL。 如果 Genie 误解了数据、问题或业务行话,可以通过编辑生成的 SQL 或提供其他特定说明进行干预。 继续测试和编辑,直到获得可靠的回复。

审阅问题后,可将其添加为基准问题,以便使用它进行系统的测试并为空间评分,获取整体准确度。 可以使用变体和不同的问题措辞来测试 Genie 的响应。 请参阅在 Genie 空间中使用基准

请查看故障排除,了解修复错误回复的思路。

执行用户测试

通过测试验证回复质量后,招募业务用户来试用 Genie 空间。 按照以下指南提供流畅的用户旅程,并收集反馈来持续改进:

  • 设定期望,让他们知道其工作是帮助优化空间。
  • 让他们将测试的重点放在特定主题,以及该空间旨在回答的问题上。
  • 如果他们收到不正确的回复,请鼓励用户在聊天中添加其他说明和澄清信息来优化答案。 当提供了正确的回复时,他们应投票支持最终查询,以最大程度地减少将来交互中出现类似错误。
  • 让用户使用内置反馈机制投票支持或反对回复。
  • 邀请用户直接与空间作者分享其他反馈和未解决的问题。 作者和编辑者可使用反馈来优化说明、示例和受信任资产。

请考虑提供培训资料或书面文档,其中包含有关测试空间和提供反馈的指南。 当业务用户测试空间时,你将在“历史记录”选项卡中看到他们提出的问题。继续添加说明,帮助 Genie 正确解析问题和数据,从而提供准确的答案。 请参阅查看历史记录和反馈,详细了解如何监视 Genie 空间。

注意

业务用户必须是原始工作区的成员才能访问你的空间。 请参阅所需权限,了解如何提供与空间交互的适当权限。

故障排除

以下部分概述了如何解决常见问题。

被误解的业务行话

大多数公司或领域都有用于传达业务特定事件的特定简写。 例如,在提到年份时,它可能总是指会计年度,本会计年度可能从 2 月或 3 月开始,而不是从 1 月开始。 为了使 Genie 能够自然准确地回答这些问题,请添加说明来将业务行话明确对应到 Genie 可理解的字词和概念。 请参阅提供指令

使用错误的表或列

如果 Genie 尝试从错误的表中拉取数据或对错误的列运行分析,你可通过以下方法之一调整数据:

  • 提供清晰精确的描述:检查表和关联的元数据,看看其中使用的术语是否与用户提交的问题中的术语匹配。 如果不匹配,请优化说明,或者添加说明来将表中使用的术语与问题中使用的术语相对应。
  • 添加示例查询:提供 Genie 可用于学习如何回答某些问题的示例 SQL 查询。 请参阅提供指令
  • 从空间中删除表或列:某些表可能包含重叠的列或概念,使 Genie 很难知道要在回复中使用哪些数据。 如果可能,请删除不必要的或重叠的表或列。 你可能想要创建仅包含所需列的视图。

筛选错误

生成的查询通常包括一个 WHERE 子句,用于根据特定值筛选结果。 由于 Genie 无法看到实际数据,因此可能会设置 WHERE 子句来筛选错误的值。 例如,当表使用“CA”之类的缩写时,它可能会尝试匹配“加利福利亚州”这一名称。

对于这种情况,请尝试以下策略之一:

  • 如果列值集相当小,请枚举每个列描述的有效字符串。 将字符串值用引号引起来,尤其是在这些值有空格或数字时。 有时,对于常见枚举,只需说“使用三个字母的国家/地区 ISO 代码”,而不是列出每个州值。

联接不正确

如果未在 Unity Catalog 中定义外键引用,则空间可能不知道应如何将不同的表联接在一起。

尝试实现下面一项或多项解决方案:

  • 尽可能地在 Unity Catalog 中定义外键引用。 请参阅 CONSTRAINT 子句
  • 提供以标准方式将表联接在一起的示例查询。
  • 如果未在 Unity Catalog 中指定表的外键关系,请在说明中记录它们。

如果这些方法都无法解决问题,请预先将表联接到视图中,并转而使用该视图作为空间的输入。 此策略对于更复杂的联接方案(例如自联接)非常有用。

指标计算问题

计算和汇总指标的方式可能会非常复杂,并包含你的空间无法理解的许多业务细节。 这可能会导致报告不正确。

尝试实现下面一项或多项解决方案:

  • 如果指标是从基表聚合的,请提供计算每个汇总值的示例 SQL 查询。
  • 如果指标已预先计算并位于聚合表中,请在表注释中解释这一点。 如果可以进一步汇总该表中的指标,请为每个指标指定有效的聚合。
  • 如果尝试生成的 SQL 非常复杂,请尝试创建已聚合空间指标的视图。

忽略说明

即使已在注释中解释了表和列,并提供了一般说明,你的空间可能仍未正确使用它们。

请尝试下面一个或多个策略:

  • 提供正确使用表的示例查询。 示例查询对于教授空间如何使用数据特别有效。
  • 从表创建视图,以便提供更简化的数据视图。
  • 查看说明,并尝试通过删除不相关的表或说明来使空间专注。
  • 尝试开始新聊天。 历史交互可能会影响 Genie 在任何给定聊天中的回复,但开始新聊天会为你提供一个空白的起点来测试新说明。

性能问题

当 Genie 需要生成异常长的查询或文本回复时,可能需要很长时间才能回复,甚至在思考阶段超时。

请尝试下面一个或多个操作来提高性能:

  • 使用受信任的资产或视图封装复杂的查询。 请参阅在 AI/BI Genie 空间中使用受信任的资产
  • 尽可能减少示例 SQL 查询的长度。
  • 如果 Genie 开始缓慢生成回复或生成失败的回复,请开始新的聊天。

对任务关键型问题的回复不可靠

使用受信任的资产为预期用户提出的特定问题提供已验证的答案。 请参阅在 AI/BI Genie 空间中使用受信任的资产

令牌限制警告

令牌是 Genie 用来处理和理解语言的基本文本单位。 Genie 空间中作为说明或元数据包含的文本将转换为令牌。 如果空间中的令牌数接近限制,则产品会发出警告通知。 Genie 应用智能上下文筛选来选择表示元数据的令牌以及 Genie 空间中包含的某些类型的指令。 即使超出限制,空间也应继续生成对问题的响应。

如果 Genie 空间接近令牌限制,Genie 可能会仅优先包括表架构的各个部分和与问题最相关的说明。 如果筛选掉重要上下文,这可以减少响应质量。请考虑以下做法来减少令牌计数:

  • 移除不必要的列:表中不必要的列可能会显著增加令牌使用量。 你可以创建视图,以从原始表中排除冗余字段或非必要字段。
  • 简化列说明:虽然列说明很重要,但请避免重复列名已经传达的信息。 例如,如果列名为 account_name,则“帐户名称”等说明可能是多余的,可以省略。
  • 简化指令:验证指令是否清晰简洁。 避免额外使用不必要的字词。
  • 修剪示例 SQL 语句:包括各种示例 SQL 语句,以涵盖各种类型的问题,但删除重叠或冗余的示例。

帐户未启用跨地理位置处理

Genie 是由 Azure Databricks 管理的指定服务 。 指定服务使用 Databricks 地理位置来管理数据驻留。 对于某些区域,无法在工作区所在的同一地理位置处理数据。 如果工作区位于其中一个区域, 则帐户管理员必须启用跨地理位置处理