使用 AI/BI Genie 空间
重要
此功能目前以公共预览版提供。 请参阅在工作区中启用 Genie 空间。
概述
领域专家(例如数据分析师)使用数据集、示例查询和文本指南配置 Genie 空间,帮助 Genie 将业务问题转化为分析查询。 设置后,业务用户可以提出问题并生成可视化效果以了解运营数据。 随着你的数据更改和用户提出新问题,你可能不断更新 Genie 的语义知识。 有关 DatabricksIQ 的更多信息,请参阅 DatabricksIQ 支持的功能。
AI/BI Genie 从带批注的表和列中选择相关名称和说明,以将自然语言问题转换为等效的 SQL 查询。 然后,如果可能,它会使用生成的查询和结果表做出响应。 如果 Genie 无法生成答案,则在它试图提供响应时,它可能提出后续问题来加以澄清。
示例用例:
可以创建不同的 Genie 空间来服务各种非技术受众。 以下场景描述了两种可能的用例。
示例 1:可视化机会状态
销售经理希望了解其销售渠道中各个阶段开放和已关闭机会的当前状态。 他们可以使用自然语言与 Genie 空间进行交互,并自动生成可视化结果。
下面的 gif 显示了这种交互:
示例 2:跟踪物流
一家物流公司希望使用 Genie 空间帮助不同部门的业务用户跟踪运营和财务详细信息。 他们为货运设施经理设立了一个 Genie 空间来跟踪货运情况,并为财务主管设立了另一个空间来了解其财务状况。
技术要求和限制
使用 Genie 空格时,需要满足以下要求和限制:
- Unity 目录:Genie 空间的数据必须注册到 Unity 目录
- 计算:必须使用专业或无服务器 SQL 仓库。
- 工作区容量:每个工作区最多可以有 1,000 个 Genie 空间。
所需的权限
创建、编辑和使用 Genie 空间需要以下权限:
- 计算权限:对于为空间指定的默认 SQL 仓库, Genie 空间创建者、编辑者和用户都需要“可使用”访问权限。 创建者在创建空间时选择默认 SQL 仓库。 他们可选择其具有“可运行”权限的任何 SQL 仓库。
- 数据访问权限:任何与空间交互的用户至少需要对空间中使用的数据拥有
SELECT
权限。 - Genie 空间权限:用户需要对 Genie 空间具有“可运行”权限才能与 Genie 和空间中使用的数据进行交互。 请参阅 Genie 空间 ACL,了解 Genie 空间的特权和能力的完整映射。
注意
配置数据和计算访问需要提升的权限,通常仅限于管理员。 请参阅创建 SQL 仓库和管理 Unity 目录中的特权。
在工作区中启用 Genie 空间
注意
必须具有提升的权限才能启用此功能。
Genie 使用 Azure AI 支持的 AI 功能,这些功能必须在帐户级别上和创建 Genie 空间的工作区中启用。 若要启用 Genie 空间,请验证以下每项设置。
- 必须在帐户级别上启用 Azure AI 服务支持的功能。 帐户管理员可以使用以下步骤启用此功能:
- 在“帐户控制台”边栏中,单击“设置”。
- 单击“功能启用”选项卡。
- 启用“启用 Azure AI 服务支持的功能”选项。
必须先在帐户级别上启用 Azure AI 服务支持的功能,然后才能在工作区级别上启用它。
必须为工作区启用 Azure AI 服务支持的功能。 工作区管理员可以使用以下步骤启用此功能:
- 登录到你的工作区。
- 单击 Azure Databricks 工作区顶部栏中的用户名,然后选择“设置”。
- 单击“高级”选项卡,然后向下滚动到“其他”部分。
- 启用“Azure AI 服务支持的功能”选项。
必须从工作区“预览”页面启用 Genie。 工作区管理员可以启用此预览。 请参阅管理 Azure Databricks 预览版。
创建新的 Genie 空间
在工作区中启用了 Genie 空间时,数据分析师可以通过执行以下操作,为商务用户创造特定于域的 Genie 空间体验:
点击边栏中的“Genie”。
在屏幕的右上角,单击“新建”。
在“新建”对话框中,选择初始设置。 选项如下所示:
- 标题:标题与其他工作区对象一起显示在工作区浏览器中。 选择一个有助于最终用户发现你的 Genie 空间的标题。
- 描述:用户打开 Genie 空间时会看到该描述。 使用此文本输入区来描述空间的用途。 说明字段支持 Markdown 格式,以便您可以设置文本的样式,并提供指向有用上下文和引用的链接。 有关 Markdown 语法的详细信息,请参阅本指南。
- 默认仓库:此计算资源为 Genie 空间中生成的 SQL 语句提供支持。 最终用户需要访问此仓库,以便与空间进行交互。 Genie 空间可以使用专业版或无服务器版的 SQL 仓库。 为获得最佳性能,Databricks 建议使用无服务器 SQL 仓库。
- 表:Genie 空间可以基于一个或多个表。 “添加表”按钮将打开一个新的对话框,可在其中选择要包含的 Unity Catalog 表。
- 示例问题:示例问题是可选的。 这些问题在聊天中显示,提供用户可提出的问题类型的示例。 可在创建期间添加这些问题,也可稍后通过空间的“设置”添加它们。
应使用什么数据?
可以基于一个或多个 Unity Catalog 管理的表创建新的 Genie 空间。 AI/BI Genie 使用附加到 Unity Catalog 对象的元数据来生成回复。 带有明确批注的数据集以及你提供的具体指令,是为最终用户创造积极体验的关键。
Databricks 建议如下:
- 整理数据以供分析使用:分层视图以减少列数并添加特定于用例的信息以提高回复质量。
- 尽量减少 Genie 空间中的表和列数:仅引入回答给定领域的问题所需的表和列。 不必要的表或列可能会导致 Genie 提供令人困惑或不正确的答案或显示错误消息。
提供指令
指令有助于指导 Genie 的回复,以便它可以处理给定领域中的独特术语、逻辑和概念。 全面的指令对于无缝、直观的 Genie 空间体验至关重要。 若要输入说明,请在 Genie 空间边栏中单击 “说明”以打开说明窗格。 使用此窗格可以添加常规说明、示例 SQL 查询和 SQL 函数。
常规说明
提供纯文本说明,明确传达 Genie 要遵循的业务或响应偏好设置。 可以将说明的格式设置为单个综合说明,或按主题对它们进行分类,以便更好地进行组织。
下面显示了可以包含在常规说明中的信息示例:
- 特定于公司的业务信息:
- “我们的财政年度从二月开始”
- 值、别名或常用筛选器:
- “应用筛选器时,始终转换为小写并使用 like 运算符。”
- “在筛选器值中使用状态缩写。”
- 指定函数以回答问题并提供返回值的说明:
- “对于季度,请使用
adventureworks.oneb.get_quarter(date)
UDF。get_quarter()
的输出是季度,可以是 1、2、3 或 4。 根据需要使用它来筛选数据。
- “对于季度,请使用
示例 SQL 查询
示例 SQL 查询是准备帮助训练 Genie 的 SQL 查询。 在回答问题时,Genie 会智能地选择相关查询来帮助生成响应。 添加示例查询后,便可以有效地显示 Genie 如何使用数据回答问题。 还可以添加示例问题,告诉 Genie 你期望示例查询回答哪些类型的问题。 如果 Genie 收到匹配的问题,则可以直接使用示例查询来提供答案。 如果收到类似的问题,则可以使用示例查询中的线索来帮助构建响应中提供的 SQL。 重点提供突出显示组织和数据特有的逻辑的示例,如以下示例所示:
-- Return our current total open pipeline by region.
-- Opportunities are only considered pipelines if they are tagged as such.
SELECT
a.region__c AS `Region`,
sum(o.amount) AS `Open Pipeline`
FROM
sales.crm.opportunity o
JOIN sales.crm.accounts a ON o.accountid = a.id
WHERE
o.forecastcategory = 'Pipeline' AND
o.stagename NOT ILIKE '%closed%'
GROUP BY ALL;
在 SQL 查询中添加参数
利用参数可以编写示例查询,包括特定值在运行时要替换的占位符。 利用参数,Genie 可以从用户问题获取特定输入,并重复使用示例查询的结构,以提供经过验证的答案作为受信任资产。 例如,可以调整以前的 SQL 查询,以包括按 o.forecastcategory
值筛选的参数,从而使查询能够解决关于在不同预测类别中标记的机会的问题。 有关如何使用参数化查询来生成标记为受信任资产的响应的详细信息,请参阅在 AI/BI Genie 空间中使用受信任资产。
以下代码片段显示了上一个示例,通过为 o.forecastcategory
值添加参数进行了修改。 参数使用与已命名参数标记相同的语法。 请参阅已命名的参数标记。
-- Return our current pipeline at a stage by region.
-- Opportunities are only considered pipelines if they are tagged as such.
SELECT
a.region__c AS `Region`,
sum(o.amount) AS `Open Pipeline`
FROM
sales.crm.opportunity o
JOIN sales.crm.accounts a ON o.accountid = a.id
WHERE
o.forecastcategory = :forecast_category AND
o.stagename NOT ILIKE '%closed%'
GROUP BY ALL;
若要向查询添加参数:
将光标置于查询中要放置参数的位置。
单击“添加参数”以插入新参数。
这会创建具有默认名称
parameter
的新参数。 若要更改默认名称,请在查询编辑器中替换它。 还可以通过在编辑器中键入一个冒号后跟参数名称 (:parameter_name
) 来添加参数。
编辑查询参数
若要编辑参数,请执行以下操作:
单击参数名称旁边的 。 此时会显示“参数详细信息”对话框,其中包括以下配置选项:
关键字:表示查询中的参数的关键字。 只能通过直接更新查询中的文本来更改它。
显示名称:Genie 在聊天体验中使用的用户可读的名称。 当 Genie 使用参数化查询来生成响应时,它会在响应中包括显示名称和关联值。
类型:支持的类型包括字符串、日期、日期和时间、数值。
- 默认类型为字符串。
- 数值数据类型允许你在十进制和整数之间进行指定。 默认数值类型为十进制。
注意
如果实际输入值与所选参数类型不匹配,Genie 会将输入值视为不正确的类型,这可能导致结果不准确。
单击 UI 的另一部分以关闭对话框。
SQL 函数
SQL 函数是存储在 Unity 目录中的自定义函数,由 Genie 用来回答特定问题。 Genie 可以调用这些函数并插入任何用户指定的参数,但无法访问底层 SQL 内容。 这意味着 SQL 函数非常适合回答常见的特定问题,这些问题包括 Genie 无法访问或编辑的复杂参数或计算。 有关在 Unity 目录中注册函数的指导,请参阅创建 SQL 表函数和 Unity 目录中的用户定义的函数 (UDF)。
受信任资产
当参数化示例查询或 SQL 函数的确切文本用于生成响应时,Genie 会将响应标记为受信任资产。 受信任资产旨在向空间用户传达结果准确性更高。 请参阅在 AI/BI Genie 空间中使用受信任的资产。
在 Genie 空间聊天
大多数 Genie 空间交互都在聊天窗口中进行。
“新建聊天”窗口包括一组特选的示例问题。 这些示例问题可帮助用户了解他们可以向 Genie 空间询问哪些问题。 用户输入问题的文本字段位于屏幕底部附近。
回复显示在文本字段上方。 用户输入问题后,它会保存到左侧窗格中的聊天历史记录线程中。
聊天历史记录
系统将为每个用户保存聊天历史记录线程,以便他们可以参考过去的问题和答案。 用户还可以重新提交或修改聊天线程中的问题。 左侧窗格中的“新建聊天”按钮会启动一个新线程。
每个聊天线程都会维持有关以前问到过的问题的上下文。 这使用户能够提出后续问题以进一步探索或重新聚焦结果集。
聊天历史记录线程无限期存储,在删除线程或 Genie 空间之前保持可访问状态。 具有 CAN MANAGE 权限或更高版本的用户可以查看空间中的所有聊天。
响应结构
精确的回复结构因问题而异。 通常,回复包括自然语言解释和显示相关结果集的表。 所有回复都包含为回答问题而生成的 SQL 查询。 单击“显示生成的代码”以查看生成的查询。
响应下方的一组按钮允许你执行各种操作。 可以向上投票或向下投票,以指示响应质量,或者请求具有 CAN EDIT 权限或更高级别的 Genie 空间的用户的评审。 其他选项包括添加响应作为指令、重新生成响应或查看用于在答案中生成结果集的 SQL 代码。
一组快速操作磁贴,遵循包含表数据的回复。 可以使用它们来生成可视化效果。
还可以通过在获得查询结果后用文字描述来生成可视化效果。
为结果设置格式
若要在响应中设置表中的列的格式,请单击列标题中的 kebab 菜单,然后单击“格式”以查看可用选项。 格式设置选项取决于列的数据类型。
下载结果集
空间用户可以将最多 1GB 的结果数据下载为 CSV。 最终文件下载大小可能略大于或小于 1 GB,因为 1 GB 限制应用于最终文件下载之前的步骤。 若要下载结果,请单击响应中的下载图标。
提供回复反馈
每个 AI/BI Genie 回复都包括一个拇指向上/拇指向下反馈按钮。 Databricks 建议鼓励用户使用此机制提供有关空间的反馈。
对于包含查询结果的响应,用户可以通过单击 来请求由 Genie 空间编辑器进行审阅。 如果用户对生成的响应的质量或准确性有疑问,他们可以将其标记为待审阅,还可以添加自己的评论或问题。
业务用户可以在其历史记录页面上查看已标记为待审阅的问题的更新。 对 Genie 空间具有至少 CAN MANAGE 权限的用户可以查看特定交换、对请求发表评论以及确认或更正响应。 他们可以访问监视页上的反馈和审阅请求。 然后,可使用该反馈来优化回复并在空间上进行迭代。 请参阅“审阅历史记录和反馈”。
审阅历史记录和反馈
Genie 空间旨在成为数据团队和业务用户积累知识的连续协作工具,而不是一次性部署。 了解业务用户需要回答的新问题对于构建知识至关重要。 在历史记录页上,可以查看各个问题和回复,对用户提供的反馈做出好评或差评,并查看已标记进行审阅的问题。 若要打开历史记录页,请单击 Genie 空间边栏中的“历史记录”。
历史记录页显示空间中已询问的所有问题及其回答。 可以按时间、分级、用户或状态筛选问题。 通过监视空间,Genie 空间编辑器可以主动了解业务用户提出的查询以及 Genie 空间的回复情况。
通过确定 Genie 难以解决的问题,可以使用特定指令更新 Genie 空间来改善其回复。 单击问题可打开该问题和回复文本。 还可以从此视图中访问完整的聊天会话。
编辑生成的 SQL
可以在任何回复中查看和编辑生成的 SQL。 Genie 空间作者通常了解相关的领域和数据,能够辨别 Genie 生成的错误答案。 通常,只需对生成的 SQL 查询进行少量手动调整,就可以修复错误。 若要查看为任何回复生成的 SQL,请单击“显示生成的代码”来检查查询。
如果对 Genie 空间拥有“可以编辑”或更高权限,则可以编辑生成的 SQL 语句以进行更正。 更正后,运行查询。 然后,可将其保存为指令,以便在将来指导 Genie 如何回答。 若要保存所编辑的查询,请单击 “另存为指令”。
使用基准评估响应
通过基准测试,你可以纵向扩展 Genie 空间中的各个响应的测试和评估。 与指令不同,基准测试旨在评估你的 Genie 空间,而不是向你发出通知。 Genie 不会使用基准问题或示例 SQL 来改进 Genie 的上下文。
使用基准测试,可以运行一系列测试问题,并使用响应来衡量 Genie 的准确度。 (可选)可以包含返回预期结果的 SQL 语句。 基准问题运行时,Genie 的响应与 SQL 语句提供的结果进行比较,并针对准确性评分。 如果未提供 SQL 答案,则问题会加上审阅标记。
请参阅在 Genie 空间中使用基准。
共享 Genie 空间
重要
Genie 空间用户必须使用自己的凭据来访问数据。 有关他们无法访问的数据的任何问题会生成空白回复。
Genie 空间用户必须在附加到 Genie 空间的仓库上具有“可使用”权限,还必须有权访问空间中出现的 Unity Catalog 对象。 请参阅应使用什么数据?。
新的 Genie 空间默认保存到用户文件夹中。 与其他工作区对象一样,它们从其随附的文件夹继承权限。 可以使用工作区文件夹结构与其他用户共享这些权限。 请参阅将工作区对象整理到文件夹中。
还可以指定要在给定权限级别共享的某些用户或组:CAN MANAGE、CAN EDIT、CAN RUN 和 CAN VIEW。
若要与特定用户或组共享,请执行以下操作:
- 单击“共享”。
- 输入要与之共享空间的用户或组。 然后,单击“添加”并设置适当的权限级别。
- 使用“共享”对话框底部的“复制链接”按钮,获取 Genie 空间的可共享链接。 特权用户可以单击链接以在新选项卡中打开 Genie 空间并提出问题。
克隆 Genie 空间
克隆 Genie 空间会创建一个副本,包括所有设置上下文和指令。 如果你有一个开发良好的空间,并且希望为其他测试创建新的空间,或者重复使用原始空间的上下文,则此功能非常有用。 克隆空间后,新空间独立于原始空间,允许你进行编辑和调整,而不会影响原始空间。
将以下元素复制到克隆的 Genie 空间:
- 表和设置
- 常规说明
- 示例 SQL 查询
- SQL 函数
现有的聊天线程和历史记录数据不会复制到新空间。
若要克隆 Genie 空间,请执行以下操作:
- 打开要克隆的 Genie 空间。
- 单击空间右上角的“Kebab”菜单。
- 单击“克隆”。
- (可选)在“克隆”对话框中,为克隆的 Genie 空间指定新的名称和工作区文件夹位置。
- 单击“克隆”以创建新空间。
隐私和安全
问:Genie 使用什么模型?
Genie 使用 Azure OpenAI 模型。
问:正在向模型发送哪些数据?
Genie spaces 使用元数据和说明生成对自然语言问题的响应。 Genie 无权访问行级数据。
为了处理响应,Genie 使用以下方法:
- 用户提交的自然语言提示
- 表名称和说明
- 列标题和说明
- 常规说明
- 示例 SQL 查询
- SQL 函数
问:Azure OpenAI 是否收集数据?
否。 Databricks 已选择免除滥用监视和人工审查计划,根据该计划,Microsoft不存储发送到 Azure OpenAI 服务的任何提示和完成。 有关详细信息,请参阅 Microsoft的文档。
空间准备的最佳做法
- 在构建之前,请确立一组你希望空间用户能够回答的界定明确的问题。
- 测试 Genie 空间以检查回复质量。 尝试以下操作,看看模型能否提供预期回复:
- 重新表述所提供的问题。
- 询问与数据集相关的其他问题。
- 添加并完善 Genie 空间指令,直到问题获得预期的回复。
有关最佳做法的更多指导和问题排查方面的帮助,请参阅打造有效的 Genie 空间。