本页介绍如何使用代理砖头:知识助手基于文档创建问答聊天机器人,并根据主题专家的自然语言反馈提高其质量。
Agent Bricks 提供了一种简单的方法来构建和优化特定于域的高质量 AI 代理系统,用于常见 AI 用例。
什么是 Agent Bricks:知识助手?
使用Agent Bricks:知识助手来创建一个聊天机器人,该机器人可以回答有关文档的问题,并提供带有引文的高质量回答。 知识助手使用高级 AI,遵循 “指示检索器 ”方法来解决传统检索扩充生成(RAG)方法的限制,并根据提供的文档提供质量最高的答案。
Agent Bricks:知识助手非常适合支持以下用例:
- 根据产品文档回答用户问题。
- 回答与人力资源策略相关的员工问题。
- 根据支持知识库回答客户查询。
借助知识助手,你可以改进聊天代理的质量,并根据主题专家的自然语言反馈调整其行为。 直接在体验中提供问题和指南,并共享智能助手,允许他人协作并提升智能助手的性能。
Agent Bricks:知识助手创建一个代理端点,您可以在应用程序的下游流程中使用。 例如,下图显示了如何在 AI Playground 中通过聊天来与端点进行交互。 向代理询问与文档有关的问题,代理将以引用的方式回答。
Agent Bricks 使用 默认存储 来存储临时数据转换、模型检查点和支持每个代理的内部元数据。 在代理删除时,将从默认存储中删除与代理关联的所有数据。
Requirements
- 包含以下内容的工作区:
- 已启用 MLflow(Beta)的生产监视。 这是跟踪工作所必需的。 请参阅 管理 Azure Databricks 预览版。
- 已启用无服务器计算。 请参阅 无服务器计算要求。
- 已启用 Unity Catalog。 请参阅为 Unity Catalog 启用工作区。
- 访问 马赛克 AI 模型服务。
- 通过
system.ai架构访问 Unity 目录中的基础模型。 - 通过非零预算访问无服务器预算策略。
- 支持区域之一的工作区:
centralus、eastus、eastus2、northcentralus、southcentralus、westus、westus2、canadacentral(需要跨地理处理)、australiaeast(需要跨地理处理)、southeastasia(需要跨地理处理)。 - 对于启用了 符合性安全配置文件 且选择了 HIPAA 控件的工作区,必须启用知识助理预览版。 请参阅 管理 Azure Databricks 预览版。
-
databricks-gte-large-en嵌入模型终结点必须禁用 AI 防护栏和速率限制。 请参阅在为终结点提供服务的模型上配置 AI 网关。 - 必须准备好输入数据以供使用。 可以选择提供以下任一项:
- Unity Catalog 卷或卷目录中的文件。 支持的文件类型包括 txt、pdf、md、ppt/pptx 和 doc/docx。
- 用作
databricks-gte-large-en其嵌入模型的矢量搜索索引。 请参阅创建矢量搜索索引。
创建知识助理代理
转到工作区左侧导航窗格中的代理。 在知识助手磁贴中,单击构建。
步骤 1:配置代理
在“ 生成 ”选项卡上,配置代理并提供用于回答问题的知识源。
在“ 名称” 字段中,输入代理的名称。
在 “说明” 字段中,描述你的代理能做什么。
在 “知识源 ”面板中,添加知识源。 可以选择提供 Unity 目录文件或矢量搜索索引。
UC 文件
对于 UC 文件,支持以下文件类型:txt、pdf、md、ppt/pptx 和 doc/docx。 引入期间会自动跳过大于 50 MB 的文件,不会包含在知识库中。
- 在 “类型”下,选择 “UC 文件”。
- 在“源”字段中,选择包含文件的 Unity Catalog 卷或卷目录。
- 在“ 名称” 字段中,输入知识源的名称。
- 在 “描述内容”下,描述知识源包含的内容,以帮助代理了解何时使用此数据源。
矢量搜索索引
Note
仅当索引用作
databricks-gte-large-en其嵌入模型时,才支持矢量搜索索引。 创建矢量搜索索引时,请确保选择此嵌入模型。 有关详细信息,请参阅 创建矢量搜索索引。- 在 “类型”下,选择 “矢量搜索索引”。
- 在 “源 ”字段中,选择要提供代理的矢量搜索索引。
- 在“ 名称” 字段中,输入知识源的名称。
- 在 文档 URI 列中,选择包含指向信息所在位置的链接或引用的列。 代理将在引文中使用它。
- 在 “文本列” 字段中,指定包含希望代理检索的原始文本的列。
- 在 “描述内容”下,描述知识源包含的内容,以帮助代理了解何时使用此数据源。
(可选)如果要添加更多知识源,请单击“ 添加知识源”。 最多可以提供 10 个知识源。
(可选)在 “说明” 字段中,指定代理响应方式的准则。
单击“ 创建代理”。
创建代理并同步你提供的知识源最多可能需要几个小时。 代理准备就绪后,右侧面板会显示同步的知识源。
Important
如果更新或添加文件到知识源,您需要单击 同步以便代理处理更改。 同步以增量方式完成。 例如,如果将新文件添加到以前同步的 Unity 目录卷,同步将仅处理新添加的文件。
只有知识助手的创建者才能同步知识源。
步骤 2:测试代理
代理构建完成后,通过聊天对其进行测试。 代理应使用引文回答与其知识来源相关的问题。
- 直接在 “生成 ”选项卡中开始与代理聊天。
- (可选)还可以单击 “在 AI Playground 中打开”,在 AI Playground 中与之聊天。 如果启用了 AI 辅助功能,则可以启用 AI 法官 和 合成问题生成 来帮助评估代理。
- 为你的代理输入一个问题。
- 评估其响应:
- 单击“ 查看想法 ”以查看代理如何回答问题。
- 单击“ 查看跟踪 ”以查看完整跟踪。 可以在 UI 中将 标签添加到追踪,以便在开发过程中跟踪质量评估。
- 单击“ 查看源” 以查看代理引用的文件。 这将打开一个侧面板,其中包含供你查看的源列表。
如果对代理的性能感到满意,请继续使用代理 as-is。
步骤 3:提高质量
代理砖块:知识助手可以根据自然语言反馈来调整代理的行为。 通过配置页面收集专家的反馈,以提高代理的质量。 收集标记数据可以提高您的代理的质量和表现。
在“ 示例 ”选项卡中,添加用户将提出的问题或代理以前出错的问题。 或者,也可以直接从 Unity 目录表导入标记的数据。
向标签添加问题:
- 单击“ + 添加” 以添加问题。
- 在 “添加问题 模式”中,输入问题。
- 单击 添加。 问题应显示在 UI 中。
- 重复操作,直到添加你想要评估的所有问题。
- 若要删除问题,请单击“烤肉串”菜单,然后单击 “删除”。
添加问题后,可以共享代理模型以供他人审查,从而帮助你构建高质量的标记数据集。 在右上角,单击烤肉串
若要 管理权限。
若要让专家访问并提供反馈,需要向他们授予以下权限:
- 代理配置页面的CAN_MANAGE权限
请分享您的代理砖块:知识助手配置页面的链接,以收集专家反馈。
若要标记数据,请单击问题并在显示的窗格中添加 “指南 ”。 指南在保存后立即适用。
在配置页或 AI Playground 中再次测试代理,以查看其性能的改进。 如果需要,请添加更多问题和指南,以继续改进行为。
(可选)导入和导出标记的数据
直接从 Unity 目录表导入新问题和反馈:
单击“导入” 。
在 “源 ”字段中,选择包含已标记数据的 Unity 目录表。
该表必须具有以下架构:
-
eval_id:string -
request:string -
guidelines:array-
items:string
-
-
metadata:string -
tags:string
-
单击“导入” 。
新的问题和指南将合并到右侧标记的数据表中。
若要将标记的数据导出为 Unity Catalog 表,请执行以下步骤:
- 单击“ 导出”。
- 在 “架构 ”字段中,选择要将数据保存到的 Unity 目录架构位置。
- 在 “表名 ”字段中,输入表的名称。
- 单击“导出”。
使用标记的数据创建新表。
管理权限
默认情况下,只有 Agent Bricks 作者和工作区管理员有权访问代理。 若要允许其他用户编辑或查询代理,需要显式授予他们权限。
若要管理代理的权限,请执行以下步骤:
- 在“Agent Bricks”中打开代理。
- 在顶部,单击
烤肉串菜单。
- 单击“ 管理权限”。
- 在 “权限设置” 窗口中,选择用户、组或服务主体。
- 选择要授予的权限:
- 可以管理:允许管理代理砖块,包括设置权限、编辑代理配置以及提高其质量。
- 可以查询:允许通过 API 查询 AI Playground 中的代理砖头终结点。 仅具有此权限的用户无法在 Agent Bricks 中查看或编辑代理。
- 单击 添加。
- 单击“ 保存”。
Important
只有知识助手的创建者才能同步知识源。
查询代理端点
在代理页上,单击 请参阅右上角的代理状态 以获取已部署的代理终结点,并查看终结点详细信息。
可通过多种方式查询创建的知识助理终结点。 使用 AI Playground 中提供的代码示例作为起点:
- 在构建选项卡上,单击打开在 playground 中。
- 在 Playground 中,单击“ 获取代码”。
- 选择如何使用终结点:
- 选择 Curl API 作为代码示例,以使用 curl 查询终结点。
- 选择 Python API 作为代码示例,以使用 Python 与终结点交互。
评估知识助手
此笔记本展示如何使用精心挑选的评估数据集和定制评分器来评估 Databricks 知识助手。
Limitations
- 引入期间会自动跳过大于 50 MB 的文件,并且不包括在知识库中。
- 以下划线()或句点(
_.)开头的文件在引入过程中自动跳过,并且不包含在知识库中。 - 不支持 Unity Catalog 表。
- 仅支持用作
databricks-gte-large-en嵌入模型的矢量搜索索引。 - AI 防护栏和速率限制必须在
databricks-gte-large-en模型终结点上禁用。 请参阅在为终结点提供服务的模型上配置 AI 网关。 - 若要使跟踪正常工作,必须为 MLflow(Beta)启用生产监视。 请参阅 管理 Azure Databricks 预览版。