检索与质量调优
在检索实验室比较向量、全文、混合与重排序效果,并按阶段诊断失败
命中测试(检索实验室)在不改动生产配置的前提下运行真实检索,并展示召回、融合、重排序、最终排名各阶段的中间结果。用它验证分块改动、模式切换或参数调整是否真的改善了召回。入口:知识库详情 → 命中测试(需要查看知识库并进行检索测试的权限)。
检索模式
| 模式 | 通道 | 检索请求默认 | 知识库设置默认 | 适用 |
|---|---|---|---|---|
| 向量 | 语义相似(需要嵌入模型) | — | 空 | 语义相近但用词不同的问法 |
| 全文 | 关键词匹配 | — | 空 | 专有名词、编号、错误码等精确串 |
| 混合 | 两路并发后合并排名 | 混合 | 空 | 通用推荐 |
注意默认值有两层:检索请求不指定模式时按混合执行;而知识库设置里的检索方式默认是空的,只有你显式设置后才会成为该知识库 Agent/工作流检索的默认模式。字段定义见知识库设置参考。
混合检索的可用范围
混合检索由站点管理员控制开放范围:可能对全部团队开启、全部关闭,或按团队灰度(部分团队开启)。默认按团队灰度,且默认比例是全量开启。
- 未开启混合检索的团队,即使请求了混合模式,也会按纯向量返回,界面不会单独标注“已降级”;只有某一路召回失败时,结果里才会出现降级原因。
- 如果发现「选了混合但没有关键词召回」,先向管理员确认该团队是否在开放范围内,再看结果里的降级原因是否指出向量通道失败。
- 读取站点检索设置失败时按“开启”处理,避免配置故障让检索整体不可用。
参数参考
命中测试面板可覆盖以下参数(全部可选):
| 参数 | 界面默认 | 范围 | 说明 |
|---|---|---|---|
| 查询 | — | 1-1000 字符 | 原样匹配,不支持布尔运算符、通配符或字段语法 |
| 检索方式 | 混合 | 向量 / 全文 / 混合 | 见上表 |
| 返回结果数 | 5 | 1-20 | 返回条数(知识库设置里允许 1-100) |
| 相似度阈值 | 0 | 0-1 | 过滤低于该相似度的向量召回结果 |
| 重排序 | 开启 | 开/关 | 覆盖知识库设置 |
| 重排序候选数 | 10 | 1-100 | 送入重排序的候选数量,界面会取“返回结果数”与候选数的较大者 |
| 重排序分数阈值 | 空(不启用) | 0-1 | 过滤低于该重排分数的结果 |
| 文档范围 | 空 | 文档列表 | 只在选中的文档中检索,目前唯一的检索过滤器 |
重排序需要绑定模型
知识库未绑定重排序模型时,界面不会向服务端发送重排序参数,此时“重排序”开关无效。绑定模型后,知识库设置中的重排序开关(默认开启)与候选数(默认 10)会自动生效,请求参数只在你显式填写时覆盖它们。
两路结果如何合并
- 混合模式:向量与全文两路结果按各自排名合并成一份排序,排名靠前的候选优先;合并只在两路都成功时发生,任一路失败会给出降级原因。
- 跨知识库:Agent/工作流关联多个知识库时,各知识库先按自己的设置并发召回,所有候选汇总到同一个池,再统一排序,而不是逐库排名后拼接。全局排序后截断到候选池大小(返回结果数与重排序候选数中的较大者)。
- 只做一次全局重排:跨库检索的重排由按知识库顺序第一个绑定了重排序模型的活跃知识库统一执行,它的候选数与分数阈值决定候选池与过滤。重排失败会让整次检索失败,不会退回未重排的融合结果。
追问改写
自动模式的 Agent 在召回前,会把带指代的追问改写成可以独立检索的查询:
- 只对自动模式生效;智能体模式与直接使用命中测试都不改写。
- 只有当追问较短且包含指代词(如「它」「这个」「上述」)时才触发,普通问题不会多调用一次模型。
- 改写失败(超时、输出不合法、模型缺失)时回退为原始查询,不会让检索失败。
A/B 对比
打开 A/B 对比 可以并排运行同一查询的两套配置:
- 分别配置 A、B 两侧(各自独立的模式、返回结果数、阈值、重排序参数)。
- 提交后返回每个配置独立的结果:一侧失败不会隐藏另一侧的成功结果,失败侧会单独提示原因。
- 结果面板显示两侧的名次、重合结果数(
重合结果:N/总数)与各阶段分数。

读取结果与诊断
每条结果会标注各阶段取值,可据此判断最终排序由哪个阶段决定:
| 指标 | 含义 |
|---|---|
| 向量分数 / 名次 | 向量通道的相似度与名次(空表示该分块未被向量召回) |
| 全文分数 / 名次 | 全文通道的关键词分数与名次(无固定上界) |
| 融合分数 / 名次 | 两路合并后的分数与名次 |
| 重排分数 / 名次 / 说明 | 重排序模型的逐对打分(0-1)与说明 |
| 最终排序依据 | 向量、全文、融合或重排 |
| 降级原因 | 某一路召回失败但仍返回另一路结果时的说明 |
阶段耗时 拆分为召回、重排、上下文装配与总耗时,可直接定位是召回慢还是重排序慢。
诊断 会说明可处理的原因:
| 诊断 | 含义 | 处理方向 |
|---|---|---|
| 知识库未启用 | 知识库不是启用状态 | 启用知识库 |
| 缺少嵌入模型 | 纯向量模式但没有嵌入模型 | 为知识库绑定已授权的嵌入模型 |
| 召回超时 | 召回阶段超时 | 降低返回结果数、缩小范围或联系管理员检查检索服务负载 |
| 召回失败 | 召回、融合或重排失败 | 根据提示的阶段与分类定位 |
请求失败时,界面会指出失败分类与阶段,便于区分处理方向:
| 分类 | 典型原因 | 处理方向 |
|---|---|---|
| 配置不匹配 | 嵌入维度与索引不一致 | 核对嵌入模型与维度;换过模型需重建索引 |
| 模型凭据无效 | 服务商凭据错误 | 检查服务商密钥与访问权限 |
| 配额或限流 | 配额不足或触发限流 | 检查配额、稍后重试 |
| 模型配置错误 | 模型不存在、未启用或不兼容 | 选择或启用兼容模型 |
| 全文检索不可用 | 全文索引异常 | 联系管理员检查检索服务,确认文档已完成处理 |
| 服务商不可用 | 上游服务异常 | 重试;持续失败则检查服务商状态 |
| 未知错误 | 其他原因 | 重试或联系管理员查看服务日志 |
应用到生产
命中测试面板的配置可以保存为本地预设(保存在浏览器本地,不跨设备同步),然后选择应用到生产把 A 侧配置写回知识库设置:检索方式、返回结果数、相似度阈值、重排序开关、重排序候选数与重排序分数阈值。
应用前请确认:
- 嵌入模型与索引维度未变化(否则先重建索引)。
- 该知识库确实被 Agent/工作流引用——写回的是知识库级默认,Agent 关联上单独设置的返回结果数、阈值或检索方式仍会覆盖它。
未实现 / Roadmap
相邻分块扩展在检索服务中存在但未通过检索界面与公开接口提供:请求不接受该参数,传入会被忽略。查询分析、检索历史、结果导出同样不可用。
故障排查
| 症状 | 优先检查 |
|---|---|
| 混合检索只召回关键词结果 | 该团队是否在混合检索的开放范围内;结果里的降级原因是否指出向量通道失败 |
| 命中测试返回 0 条 | 文档是否为已完成;相似度阈值是否过高;换全文模式验证关键词是否存在 |
| 报「维度不匹配」 | 是否更换过嵌入模型;向量维度与索引是否一致 |
| 报全文不可用 | 检索服务状态;文档是否完成全文索引 |
| 重排序无效果 | 知识库是否绑定重排序模型;重排序开关是否开启;候选数是否小于返回结果数 |
| 结果与生产不一致 | 命中测试用请求参数执行,生产检索还会叠加 Agent 关联的返回结果数与检索方式,以及混合检索的开放范围 |
这篇文章对你有帮助吗?