你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注释
此功能目前处于公开预览状态。 此预览版未随附服务级别协议,建议不要用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
知识来源使用额外的属性包装搜索索引,以便进行智能体检索。 它是知识智能体中的必需定义。 我们提供有关如何创建特定知识来源的指导,但一般情况下,你可以:
在搜索服务上将知识源创建为顶级资源。 每个知识来源精确指向一个索引,该索引必须满足智能体检索的条件。
在知识智能体中引用一个或多个知识来源。 在代理检索管道中,可以在单个请求中针对多个知识源进行查询。 为每个知识源生成子查询。 检索响应中返回最匹配的结果。
使用知识源定义生成可用于代理检索的完整索引器管道(数据源、技能集、索引器和索引)。 知识源中的信息用于生成所有对象,包括填充和可搜索的索引,而不是手动创建多个对象。
在创建知识智能体之前,请确保至少有一个知识来源。 知识源和知识代理的完整规范位于 预览版 REST API 参考中。
使用知识源
创建路径:首先创建知识源,然后创建知识代理。
删除路径:更新或删除知识代理以删除对知识源的引用,然后最后删除知识源。
知识来源、其索引和知识智能体必须全部位于同一搜索服务中。
对于每个知识来源,知识智能体都为查询执行提供了额外的属性。
"knowledgeSources"属性会影响查询规划。"outputConfiguration"属性会影响查询输出。
支持的知识来源
下面是可在此预览版中创建的知识来源:
-
"searchIndex"封装现有索引 -
"azureBlob"生成从 Blob 容器中拉取的索引器管道
特定于平台的知识源(如 Blob 知识源)包括生成整个索引管道的规范,该管道提供提取、技能集处理和可行的索引。 可以修改管道并重新运行索引器,但不能重命名对象。
注释
WebKnowledgeSource (在 REST API 中也称为 WebParameters)在 2025-08-01-preview 中目前不可用。
创建知识源
必须具有 搜索服务参与者 权限 才能在搜索服务上创建对象。 如果使用创建索引器管道的知识源,则还需要 搜索索引数据参与者 权限才能加载索引。 或者,可以使用 API 管理密钥 而不是角色。
必须使用 REST API 或 Azure SDK 预览包来创建知识源。 目前没有门户支持。 以下链接提供有关创建知识源的说明:
创建知识源后,可以在知识代理中引用它。
使用知识源
知识代理上的属性确定是否以及如何使用知识源。
"knowledgeSources"array 指定知识代理可用的知识源,并通知查询逻辑。"outputConfiguration"属性会影响查询输出。
知识代理使用 检索作 将查询发送到知识源中指定的索引。
同时使用多个知识来源
如果有多个知识来源,请设置以下属性,以便将查询规划偏向特定的知识来源。
- 设置
alwaysQuerySource会强制查询规划始终包含知识来源。 - 设置
retrievalInstructions会提供包含或排除知识来源的指导。
检索指令作为用户定义的提示发送到用于查询规划的大型语言模型 (LLM)。 当你有多个知识来源,并且想要提供有关何时使用每个知识来源的指导时,此提示非常有用。 例如,如果你关于产品信息、职位发布和技术支持具有单独的索引,检索说明可能会显示“仅当问题有关职位申请时,才使用职位索引”。
alwaysQuerySource 属性会替代 retrievalInstructions。 提供检索说明时,将 alwaysQuerySource 设置为 false。
尝试快速路径处理
快速路径是一种机会性查询处理,其性能接近常规搜索的毫秒级查询性能。 如果启用它,搜索引擎将在以下条件下尝试快速路径:
attemptFastPath在outputConfiguration中设置为 true。查询输入是一条不到 512 个字符的消息。
查询目标是在智能体中指定的知识来源,这些来源将
alwaysQuerySource设置为 true。
在知识智能体中列出的所有合规知识来源上并行执行的小型查询,如果评分为 1.9 或更高,则返回结果。 响应中返回评分最高的结果。 如果没有结果满足此条件,则会放弃快速路径,查询执行会随着查询规划和通常的智能体检索管道而恢复。
在快速路径下,响应会省略查询规划信息 (type": "modelQueryPlanning"),且每个引用引文的“activitySource”设置为 0。
在快速路径下,retrievalInstructions 会被忽略。 一般情况下,alwaysQuerySource 会替代 retrievalInstructions。
若要实现最快的响应时间,请遵循以下最佳做法:
在知识智能体中:
将
outputConfiguration.attemptFastPath设置为 true。将
outputConfiguration.modality设置为answerSynthesis,可获得以 LLM 生成式答案为格式的响应。 这会多花费几秒钟时间,但会提升响应质量,而且如果答案无需进一步 LLM 处理就能使用,会节省整体时间。将
outputConfiguration.includeActivity保留为 true(默认设置),可获取有关查询执行和已用时间的见解。将
knowledgeSource.includeReferences保留为 true(默认设置),可获取每个单独评分结果的详细信息。将
knowledgeSources.alwaysQuerySource设置为 true。将
knowledgeSources.retrievalInstructions设置为 false。如果不需要索引中的逐字内容,则将
knowledgeSources.includeReferenceSourceData设置为 false。 省略此信息可简化响应并使其更易于阅读。
在 检索操作中,提供一个少于512个字符的消息查询。