注释
此功能目前处于公开预览状态。 此预览版未随附服务级别协议,建议不要用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅适用于 Azure 预览版的补充使用条款。
知识源指定用于代理检索的内容。 它要么封装了由外部数据填充的搜索索引,要么与远程目标(例如必应或SharePoint)直接连接,并进行查询。 知识源是知识库中的必需定义。
在搜索服务上将知识源创建为顶级资源。 每个知识源都指向一个数据结构,即 满足代理检索条件 的搜索索引或受支持的外部资源。
引用 知识库中的一个或多个知识源。 在代理检索管道中,可以在单个请求中针对多个知识源进行查询。 为每个知识源生成子查询。 检索响应中返回最匹配的结果。
对于某些知识源,可以使用知识源定义生成可用于代理检索的完整索引器管道(数据源、技能组、索引器和索引)。 知识源中的信息用于生成所有对象,包括填充索引、分块索引和可搜索索引,而不是手动创建多个对象。
在创建知识库之前,请确保至少有一个知识库。 可以在 预览版 REST API 参考中找到知识源和知识库的完整规范。
使用知识源
创建路径:首先创建知识源,然后创建知识库。
删除路径:更新或删除知识库以删除对知识库的引用,然后最后删除知识库。
知识源、其索引和知识库必须全部存在于同一搜索服务上。 外部内容可以通过公共互联网(如使用必应)或通过远程的Microsoft租户(如SharePoint)进行访问。
支持的知识来源
在此预览版中,可以创建以下知识源:
| 种类 | 索引或远程 |
|---|---|
"searchIndex" API 包装现有索引。 |
已编入索引 |
"azureBlob" API 生成一个从 Blob 容器中拉取的索引生成管道。 |
已编入索引 |
"webParameters" API 从 Microsoft 必应 检索实时的基础数据。 |
Remote |
索引知识源指向 Azure AI 搜索的目标索引。 查询的执行在搜索服务中的搜索引擎上是本地的。 关键字(全文搜索)、矢量和混合查询功能用于从索引知识源检索数据。
在查询时访问远程知识源。 代理检索引擎调用平台原生的检索 API(例如必应或 SharePoint 的 API)。
所有检索的内容(无论是索引内容还是远程内容)都会拉取到 Azure AI 搜索中的排名管道中,在 Azure AI 搜索中针对相关性、合并(假设多个查询)进行评分,并在检索响应中返回。
创建知识源
将知识源创建为独立对象。 然后,在“knowledgeSources”数组的知识库中指定它们。
若要在搜索服务上创建对象,需要 “搜索服务参与者” 权限。 如果使用创建索引器管道的知识源,则还需要 搜索索引数据参与者 权限才能加载索引。 或者,可以使用 API 管理密钥 而不是角色。
使用 REST API 或 Azure SDK 预览包创建知识源。 Azure 门户支持可用于选择知识源。 以下链接提供有关创建知识源的说明:
创建知识库后,请在知识库中引用它。
使用知识源
可以通过设置 alwaysQuery 知识源定义或通过查询规划期间使用的指导说明来显式控制知识源使用情况。 指导说明是指有关索引的说明,或知识源中的显式检索说明,这些说明提供有关何时使用索引的指导。 使用 LLM 的低或中等检索推理工作时,会发生查询规划。 为了尽量减少推理工作,知识库中列出的所有知识源都属于每个查询的范围。 对于低和中,知识库和LLM可以在查询时确定哪些知识源可能提供最佳搜索语料库。
知识源选择逻辑基于以下因素:
alwaysQuery是否已设置? 如果是,则始终在每个查询上使用知识源。name知识来源。假设
description是一个有索引的知识源的索引。在
retrievalInstructions或知识库定义中指定的提供指导,这些指导包括或排除知识源。 这类似于提示符。 你可以将简洁性、音调和格式指定为检索指令。outputMode也会影响知识库,从而影响查询输出和响应中的内容。
使用检索推理工作来控制 LLM 使用情况
并非所有解决方案都受益于 LLM 查询规划和执行。 如果认为简单性和速度胜过了 LLM 查询规划和上下文工程提供的好处,请指定最小的推理工作量,以防止在管道中进行 LLM 处理。
对于低级和中级,LLM 处理级别是一种平衡或最大化的方法,有助于提高相关性。 有关详细信息,请参阅 设置检索推理工作。
注释
如果在之前的预览中使用了 attemptFastPath,现在这个方法已被设置为使用 retrievalReasoningEffortminimal 代替。