Important
此功能在 Beta 版中。
本页介绍如何使用代理砖块:信息提取创建生成 AI 代理进行信息提取。
Agent Bricks 提供了一种简单的方法来构建和优化特定于域的高质量 AI 代理系统,用于常见 AI 用例。
什么是 Agent Bricks:信息提取?
Agent Bricks 支持信息提取,并简化了将大量未标记的文本文档转换为结构化表格的过程,其中包含每个文档的提取信息。
信息提取的示例包括:
- 从合同中提取价格和租赁信息。
- 根据客户笔记组织数据。
- 从新闻文章中获取重要详细信息。
代理砖块:信息提取利用自动评估功能(包括 MLflow 和 代理评估)来快速评估特定提取任务的成本质量权衡。 通过此评估,可以就准确度与资源投入之间的平衡做出明智的决策。
Agent Bricks 使用 默认存储 来存储临时数据转换、模型检查点和支持每个代理的内部元数据。 在代理删除时,将从默认存储中删除与代理关联的所有数据。
Requirements
- 包含以下内容的工作区:
- 已启用 Mosaic AI Agent Bricks 预览版 (Beta)。 请参阅 管理 Azure Databricks 预览版。
- 已启用无服务器计算。 请参阅 无服务器计算要求。
- 已启用 Unity Catalog。 请参阅为 Unity Catalog 启用工作区。
- 其中一个受支持区域的工作区:
centralus、eastus、eastus2、northcentralus、southcentralus.westus或westus2中的一项。 - 通过
system.ai架构访问 Unity 目录中的基础模型。 - 通过非零预算访问无服务器预算策略。
- 能够使用
ai_querySQL 函数。 - 要从中提取数据的文件。 这些文件必须位于 Unity 目录卷或表中。
- 如果要使用 PDF,请先将其转换为 Unity 目录表。 请参阅在 Agent Bricks 中使用 PDF。
- 若要生成代理,需要在 Unity 目录卷或表中的 1 行中至少有 1 个未标记的文档。
- 若要优化代理(可选)优化代理,必须在 Unity 目录卷中至少有 75 个未标记的文档或表中至少有 75 行。
创建信息提取代理
转到工作区左侧导航窗格中的代理。 在 “信息提取” 磁贴中,单击“构建”。
步骤 1:配置代理
配置代理:
在“ 名称” 字段中,输入代理的名称。
选择要提供的数据的类型。 可以选择 未标记的数据集 或 标记数据集。
选择要提供的数据集。
未标记的数据集
如果选择 “未标记的数据集”:
- 在 “数据集位置 ”字段中,从 Unity 目录卷中选择要使用的文件夹或表。 如果选择文件夹,该文件夹必须包含 受支持文档格式的文档。
- 如果要提供表,请从下拉列表中选择包含文本数据的列。 表列必须包含 支持的数据格式的数据。
如果要使用 PDF,请先将其转换为 Unity 目录表。 请参阅在 Agent Bricks 中使用 PDF。
下面是一个示例卷:
/Volumes/main/info-extraction/bbc_articles/标记的数据集
如果选择 “标记数据集”:
- 在 “标记训练数据集 ”字段中,选择要使用的 Unity 目录表。
- 在 “输入列 ”字段中,选择包含希望代理处理的文本的列。 此列中的数据必须
str采用格式。 - 在 “已标记的响应列 ”字段中,选择包含希望代理生成的已标记响应的列。 此列中的数据必须是 JSON 字符串。 此列中的每一行必须遵循相同的 JSON 格式。 包含附加键或缺失键的行不可接受。
在优化时,Agent Bricks 使用标记的数据来提高信息提取终结点的质量。
如果提供了未标记的数据集,则 Agent Bricks 会自动推断并生成一个示例 JSON 输出,其中包含从数据集中提取的数据在 示例 JSON 输出 字段中。 可以接受示例输出,对其进行编辑,或将其替换为所需的 JSON 输出示例。 代理使用此格式返回提取的信息。
如果提供了带标签的数据集, 示例 JSON 输出 字段将显示已标记响应列中的第一行数据。 验证此 JSON 输出是否与预期格式匹配。
例如,以下示例 JSON 输出可用于从一组新闻文章中提取信息:
{ "title": "Economy Slides to Recession", "category": "Politics", "paragraphs": [ { "summary": "GDP fell by 0.1% in the last three months of 2004.", "word_count": 38 }, { "summary": "Consumer spending had been depressed by one-off factors such as the unseasonably mild winter.", "word_count": 42 } ], "tags": ["Recession", "Economy", "Consumer Spending"], "estimate_time_to_read_min": 1, "published_date": "2005-01-15", "needs_review": false }单击“ 创建代理”。
支持的文档格式
下表显示了源文档支持的文档文件类型(如果提供 Unity 目录卷)。
| 代码文件 | 文档文件 | 日志文件 |
|---|---|---|
|
|
|
受支持的数据格式
代理砖块:如果提供 Unity 目录表,信息提取支持源文档的以下数据类型和架构。 Agent Bricks还可以从每个文档中提取这些数据类型。
strintfloatboolean-
enum(用于代理仅应从预定义类别中选择的分类任务) - 物体
- 数组
枚举(适用于分类任务中的代理输出仅限于一组预定义的类别)、对象(用于替代“自定义嵌套字段”)和数组。
步骤 2:改进代理
在“ 修复响应 ”选项卡上,查看示例输出,以帮助你优化架构定义并添加说明,以获取更好的结果。
** 在左侧,提供反馈,以调试您的代理以便更好地处理示例响应。 这些示例基于当前的代理配置。
- 单击行以查看完整的输入和响应。
- 在底部,
在 这个回答是否正确? 旁边,选择 或 是向上拇指图标 以提供反馈。 否拇指向下图标 - 审阅完所有响应后,单击“
是的,更新代理。 或者,查看至少三个响应后,可以单击“ 保存反馈”并更新 。
在右侧的 “指南”下,优化架构字段的说明。 代理依赖这些说明来了解你想要提取的内容。 使用左侧的示例响应来帮助优化架构定义。
- 对于每个字段,根据需要查看和编辑架构定义。 使用左侧的示例响应来帮助优化这些说明。
- 若要编辑字段名称和类型,请单击
编辑字段。
- 若要添加新字段,请单击
添加新字段。 输入名称、类型和说明,然后单击“ 确认”。
- 若要删除字段,请单击
删除字段。
- 单击“ 保存并更新” 以更新代理配置。
(可选)在右侧的 “说明”下,输入代理的任何全局说明。 这些说明适用于所有提取的元素。 单击“ 保存”并更新 以应用说明。
在左侧生成新的示例响应。 查看这些更新的响应,并继续优化代理配置,直到响应令人满意。
步骤 3:评估代理
若要确保已生成高质量代理,请运行评估并查看生成的质量报告。
在左侧,切换到 “质量报表 ”选项卡。
单击“ 运行评估”。
在滑出的 “新建评估 ”窗格中,配置评估:
- 选择评估运行名称。 可以选择使用生成的名称或提供自定义名称。
- 如果有 优化的代理,请选择是对基线代理还是对优化的代理进行评估。
- 选择评估数据集。 可以选择使用用于生成代理的源数据集,或使用带标签或未标记的数据提供自定义评估数据集。
单击“ 开始评估”。
** 评估运行完成后,查看质量报告及其评估分数。
单击请求以查看更多详细信息。
在左侧,查看 “摘要”、“ 详细信息和时间线”和 “链接”提示 选项卡。
在右侧,查看评估。 单击“
在评估旁边编辑分数并提供反馈。 还可以向下滚动到页面底部以添加新的评估。
如果对结果感到满意,请转到 步骤 4:使用代理。 如果没有,请参阅 (可选)优化代理。
步骤 4:使用代理
可以在 Databricks 中的工作流中使用代理。 默认情况下,Agent Bricks 终结点在处于非活动状态 3 天后缩放为零,因此只会对运行时间进行计费。
若要开始使用代理,请单击“ 使用”。 可以通过多种方式选择使用代理:
-
提取所有文档的数据:单击 “开始提取 ”以打开 SQL 编辑器,并用于
ai_query向新的信息提取代理发送请求。 - 创建 ETL 管道:单击创建管道,以部署一个按计划间隔运行的管道,使用您的代理处理新数据。 有关管道的详细信息,请参阅 Lakeflow Spark 声明性管道 。
- 测试代理:在 Playground 中单击“打开 ”,在测试环境中试用代理,以查看其工作原理。 请参阅 使用 AI Playground 与 LLM 和原型生成 AI 应用聊天 ,了解有关 AI Playground 的详细信息。
(可选)优化代理
使用 Databricks 优化代理时,Databricks 会比较多个不同的优化策略来生成并推荐优化代理。 这些策略包括使用 Databricks Geos 的基础模型微调。
优化智能助理:
- 单击
在顶部进行优化。 还可以导航到 “优化 ”选项卡并单击
启动优化。 优化需要至少 75 个文件。
- 单击“ 开始优化 ”以确认。 优化可能需要几个小时。 优化正在进行时,会阻止对代理进行更改。
- 优化后的代理准备就绪后,可以从“质量报告”选项卡运行评估,然后将结果与基线代理进行比较。 请参阅 步骤 3:评估代理。
- 如果优化代理满足你的需求,请开始使用它。 请参阅 步骤 4:使用代理。
查询代理终结点
可通过多种方式查询创建的知识助理终结点。 使用 AI Playground 中提供的代码示例作为起点。
- 在配置选项卡上,单击在沙盒中打开。
- 在 Playground 中,单击“ 获取代码”。
- 选择使用终结点的方式:
- 选择 “对数据应用” 以创建将代理应用到特定表列的 SQL 查询。
- 选择 Curl API 作为代码示例,以使用 curl 查询终结点。
- 选择 Python API 作为代码示例,以使用 Python 与终结点交互。
管理权限
默认情况下,只有 Agent Bricks 作者和工作区管理员有权访问代理。 若要允许其他用户编辑或查询代理,需要显式授予他们权限。
若要管理代理的权限,请执行以下步骤:
- 在“Agent Bricks”中打开代理。
- 在顶部,单击
烤肉串菜单。
- 单击“ 管理权限”。
- 在 “权限设置” 窗口中,选择用户、组或服务主体。
- 选择要授予的权限:
- 可以管理:允许管理代理砖块,包括设置权限、编辑代理配置以及提高其质量。
- 可以查询:允许通过 API 查询 AI Playground 中的代理砖头终结点。 仅具有此权限的用户无法在 Agent Bricks 中查看或编辑代理。
- 单击 添加。
- 单击“ 保存”。
注释
对于在 2025 年 9 月 16 日之前创建的代理终结点,可以从“服务终结点”页向终结点授予 Can Query 权限。
在 Agent Bricks 中使用 PDF 文件
Agent Bricks: Information Extraction 和 Custom LLM 中尚未原生支持 PDF。 但是,可以使用 Agent Brick 的 UI 工作流将 PDF 文件的文件夹转换为 markdown,然后在生成代理时使用生成的 Unity 目录表作为输入。 此工作流使用ai_parse_document进行转换。 执行以下步骤:
单击左侧导航窗格中的 代理 以在 Databricks 中打开 Agent Bricks。
在信息提取或自定义 LLM 用例中,单击“ 使用 PDF”。
在打开的侧面板中,输入以下字段以创建新工作流以转换 PDF:
- 选择包含 PDF 或图像的文件夹:选择包含要使用的 PDF 的 Unity 目录文件夹。
- 选择目标表:选择转换后的 Markdown 表的目标架构,并根据需要调整下表中的表名称。
- 选择活动 SQL 仓库:选择要运行工作流的 SQL 仓库。
单击“ 开始导入”。
将重定向到“ 所有工作流 ”选项卡,其中列出了所有 PDF 工作流。 使用此选项卡监视作业的状态。
如果工作流失败,请单击作业名称将其打开,并查看错误消息以帮助进行调试。
工作流成功完成后,单击作业名称,在目录资源管理器中打开表以浏览和了解列。
配置代理时,使用 Unity 目录表作为代理砖块中的输入数据。
Limitations
- Databricks 建议至少使用 1000 个文档来优化代理。 添加更多文档时,代理可以学习的知识库会增加,这会提高代理的质量及其提取准确度。
- 信息提取代理的最大上下文长度为 128k 令牌。
- 不支持启用了 增强安全性和符合性的 工作区。
- 在具有 具有受限访问模式的无服务器出口控制网络策略 的工作区或启用了 工作区存储帐户防火墙支持的工作区中,优化可能会失败。
- 不支持联合架构类型。