你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
矢量存储对象使 文件搜索 工具能够搜索文件。 将文件添加到矢量存储时,服务将分析、区块、嵌入和索引,以便该工具可以同时运行关键字和语义搜索。
可将矢量存储附加到智能体和对话。 目前,最多可以将一个矢量存储附加到一个智能体,并且最多可以将一个矢量存储附加到一个对话。 有关对话的概念性概述,请参阅 代理运行时组件。
在当前的代理开发人员体验中,响应生成使用 响应 和 对话。 某些 SDK 和较旧的示例使用术语 运行。 如果看到这两个术语,请将 运行 视为响应生成。 有关迁移指南,请参阅 如何迁移到新的代理服务。
有关矢量搜索的限制列表(例如允许的最大文件大小),请参阅 配额和限制 文章。
先决条件
- Microsoft Foundry project。
- 使用 文件搜索 工具的代理或对话。
- 如果使用标准代理设置,请在安装过程中连接Azure Blob Storage和Azure AI Search,以便文件保留在storage中。 请参阅 代理环境设置。
- 角色和权限因任务而异(例如,创建项目、为标准设置分配角色或创建和编辑代理)。 请参阅 代理环境设置中的所需权限表。
- 功能可用性可能因区域而异。 有关当前覆盖范围,请参阅 跨云区域Microsoft Foundry 功能可用性。
密钥限制和默认值
矢量存储通常是生产中第一个检索工作流失败的地方,因此有助于了解默认值和硬性限制。
- 每个向量存储的文件:每个向量存储最多可以容纳 10,000 个文件。
- 附件:最多可以将一个向量存储附加到代理,最多可将一个向量存储附加到会话。
-
默认检索设置 (文件搜索):
- 区块大小:800 个令牌
- 区块重叠:400 个令牌
- 嵌入模型:text-embedding-3-large,尺寸为 256
- 添加到上下文的最大区块数:20
有关文件大小和令牌限制,请参阅 配额和限制。
重要概念
| 术语 | 含义 |
|---|---|
| 矢量存储 | 用于文件搜索工具使用的可搜索文件内容的容器(区块和嵌入)。 |
| 摄入 | 用于搜索的异步进程会解析、分块、嵌入并索引文件。 |
| 就绪情况 | 引入是否已完成,矢量存储是否可搜索。 |
| 过期策略 | 生命周期策略,在处于非活动状态的时间段后使向量存储过期。 |
向量存储库如何与文件搜索协同工作
文件搜索应用检索最佳做法,以帮助代理从文件中找到正确的内容。 根据查询和数据,该工具可以:
- 重写用户查询以提高检索能力。
- 将复杂查询分解为多个搜索。
- 跨代理和聊天向量存储运行关键字和语义搜索。
- 在将结果添加到模型上下文之前,重新排序结果。
有关当前默认检索设置(区块大小和重叠、嵌入模型和添加到上下文中的最大区块数),请参阅 工作原理。
您的数据存储在哪里(基本代理设置与标准代理设置)
文件和搜索资源的存储位置取决于您的代理设置:
- Basic 代理设置:文件搜索使用 Microsoft 管理的存储和搜索资源。
- Standard 代理设置:文件搜索使用在设置过程中连接的 Azure Blob Storage 和 Azure AI Search 资源,因此文件保留在存储中。
若要设置环境,请参阅 代理环境设置。 有关更多详细信息,请参阅 代理设置的依赖关系。
在创建响应之前确保矢量存储就绪情况
在创建响应之前,请确保已完全处理矢量存储中的所有文件。 此步骤可确保矢量存储中的所有数据都可以搜索。
若要检查就绪情况,请使用 SDK 轮询帮助程序(例如 ,创建和轮询 和 上传和轮询)或轮询矢量存储对象,直到其状态 完成。 有关代码示例,请参阅 代理的文件搜索工具。
引入期间,矢量存储可以 处于in_progress 状态。 引入完成后,状态将更改为 已完成。
作为备用措施,当聊天的向量存储中包含正在处理的文件时,响应生成时可能需要最长等待 60 秒。 这种回退等待不适用于智能体的矢量存储区。
端到端工作流清单
使用此清单验证从引入到生命周期管理的工作矢量存储工作流。
- 根据希望文件和搜索资源所在的位置,决定是否使用基本代理设置或标准代理设置。 查看您数据的存放位置(基本代理设置与标准代理设置)。
- 上传文件并创建矢量存储。 有关分步示例,请参阅 上传文件并将其添加到向量存储。
- 等待引入完成,然后生成响应。 使用 SDK 轮询辅助工具或轮询矢量存储,直到其状态为 completed 且没有文件处于 in_progress 状态。 在 创建响应之前,请参阅确保矢量存储就绪情况。
- 将矢量数据库连接到您用于文件搜索的代理或会话。 请记住附件限制。 请参阅 矢量存储。
- 创建使用文件搜索的响应,并验证该工具是否正在从预期的源检索。 请参阅 创建文件搜索响应 和 验证结果。
- 管理生命周期:删除不再需要的文件,并规划过期策略(尤其是由聊天帮助程序创建的矢量存储)。 请参阅矢量存储和对话矢量存储,它们具有默认的过期策略。
添加文件和管理矢量存储
将文件添加到矢量存储是一项异步作。 若要确保引入完成,请使用官方 SDK 中的创建和投票帮助程序。 如果不使用 SDK,请轮询矢量存储,直到其状态为 completed 且没有文件处于 in_progress 状态。
创建矢量存储文件后,还可以将文件添加到矢量存储中。 或者,可以通过创建最多 500 个文件的批处理,将多个文件添加到矢量存储中。
上传文件以创建矢量存储时,系统会自动:
- 将内容分块 成可管理的部分。
- 使用嵌入模型将每个区块转换为高维向量。
- 将这些向量存储在 优化的搜索索引中。
- 创建 矢量与您原始内容之间的连接。
从矢量存储中删除文件
可以通过两种不同的方式从向量存储中删除文件:
- 删除矢量存储文件对象。
- 删除基础文件对象。 这会从组织中所有代理和对话的所有向量存储配置中删除该文件。
使用过期策略管理生命周期
过期策略可帮助你管理矢量存储生命周期。 创建或更新向量存储对象时,可以设置这些策略。
会话向量存储库具有默认过期策略
使用对话帮助程序创建的矢量存储具有默认的过期策略,即在其最后一次活跃(定义为最后一次在生成响应期间使用该矢量存储的时间)后的七天。
当向量存储过期时,该会话的响应生成将失败。 若要解决此问题,请使用相同的文件重新创建一个新的向量存储,并将其重新附加到对话。 有关更多详细信息,请参阅 对话向量存储具有默认过期策略。
支持的文件类型和密钥限制
有关支持的文件类型列表和编码要求,请参阅 支持的文件类型。
要记住的关键限制:
- 你最多可以将一个矢量存储附加到一个智能体,并且最多可以将一个矢量存储附加到一个对话。
- 文件大小和令牌限制因功能而异。 请参阅 配额和限制。
故障排除
- 矢量存储尚不可搜索:等待数据导入完成。 使用 SDK 轮询帮助程序或轮询矢量存储,直到其状态变为“已完成”。
- 几天后响应生成失败:对话向量存储可能已过期。 使用相同的文件重新创建一个新的矢量存储,并重新附加它。
- 文件从多个代理或对话中消失:你可能已经删除了基础文件对象,这会从组织中的所有矢量存储配置中删除该文件。
- 上传或引入失败:检查 配额和限制中的文件大小和令牌限制。