注释
此功能目前处于公开预览状态。 此预览版未随附服务级别协议,建议不要用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅适用于 Azure 预览版的补充使用条款。
知识源指定用于代理检索的内容。 它封装了一个可以由外部数据源填充的搜索索引,或通过直接连接到必应或 SharePoint 等远程源来进行查询。 知识源是知识库中的必需定义。
在搜索服务上将知识源创建为顶级资源。 每个知识源都指向一个数据结构,即 满足代理检索条件 的搜索索引或受支持的外部资源。
引用知识库中的一个或多个知识源。 在代理检索管道中,可以在单个请求中针对多个知识源进行查询。 为每个知识源生成子查询。 检索响应中返回最匹配的结果。
对于某些知识源,可以使用知识源定义生成可用于代理检索的完整索引器管道(数据源、技能组、索引器和索引)。 知识源中的信息用于生成所有对象,包括填充索引、分块索引和可搜索索引,而不是手动创建多个对象。
在创建知识库之前,请确保至少有一个知识库。 知识源和知识库的完整规范位于 预览版 REST API 参考中。
使用知识源
创建路径:首先创建知识源,然后创建知识库。
删除路径:更新或删除知识库以删除对知识库的引用,然后最后删除知识库。
知识源、其索引和知识库必须全部存在于同一搜索服务上。 外部内容可通过公共互联网(Bing)或 Azure 租户(远程 SharePoint)进行访问。
支持的知识来源
下面是可在此预览版中创建的知识来源:
-
"searchIndex"API 包装现有索引。 -
"azureBlob"API 生成一个从 Blob 容器中拉取的索引生成管道。 -
"webParameters"API 从 Azure 必应检索实时基础数据。
创建知识源
必须具有 搜索服务参与者 权限 才能在搜索服务上创建对象。 如果使用创建索引器管道的知识源,则还需要 搜索索引数据参与者 权限才能加载索引。 或者,可以使用 API 管理密钥 而不是角色。
可以使用 REST API 或 Azure SDK 预览包来创建知识源。 Azure 门户支持可用于选择知识源。 以下链接提供有关创建知识源的说明:
创建知识源后,可以在知识库中引用它。
使用知识源
知识库上的属性确定使用哪些知识源。
“knowledgeSources”REST 数组指定可用于知识库的知识源。
“retrievalReasoningEffort” REST 属性确定投入到检索中的努力程度。 有关详细信息,请参阅 设置检索推理工作。
“outputMode”REST 会影响查询输出以及响应中的内容。
知识库使用 检索作 将查询发送到知识源中指定的索引。 在检索操作中,可以在检索时覆盖某些知识库和源的默认设置。
同时使用多个知识来源
如果有多个知识来源,请设置以下属性,以便将查询规划偏向特定的知识来源。
- 设置
alwaysQuerySource会强制查询规划始终包含知识来源。 - 设置
retrievalInstructions会提供包含或排除知识来源的指导。
检索指令作为用户定义的提示发送到用于查询规划的大型语言模型 (LLM)。 当你有多个知识来源,并且想要提供有关何时使用每个知识来源的指导时,此提示非常有用。 例如,如果你关于产品信息、职位发布和技术支持具有单独的索引,检索说明可能会显示“仅当问题有关职位申请时,才使用职位索引”。
alwaysQuerySource 属性会替代 retrievalInstructions。 提供检索说明时,将 alwaysQuerySource 设置为 false。
使用检索推理工作来控制 LLM 使用情况
并非所有解决方案都受益于 LLM 查询规划和执行。 如果简单性和速度的优势超过了 LLM 查询规划和上下文优化的益处,则可以从管道中省略 LLM。
检索推理过程决定了检索操作所需的处理级别。 有关详细信息,请参阅 设置检索推理工作。
注释
在上一个预览版中如果使用过 attemptFastPath,现在该方法已被替换为将 retrievalReasoningEffort 设置为 minimal。