AI 门道 · AI 资讯 · 学习中心 · 模型与平台 · 工具导航

知识库答非所问怎么办?用小型评测集排查 RAG 的检索与引用

从可回答、不可回答、旧版本冲突和越权问题四类样本入手,逐层记录检索片段、答案与引用。附评测记录模板、故障定位顺序和上线验收办法。

先拆开三件事:找得到、答得对、引得准

知识库问答通常先检索资料,再把片段交给模型组织回答。答错不一定是模型弱,也可能是文档缺失、分段切断上下文、版本筛选不对,或检索结果根本没有传入提示词。本练习适合已有小型知识库的人,不限定具体平台。准备十份允许使用的说明文档和一个能查看检索片段的调试入口。全程先用脱敏资料;验收结果要能追溯到文档编号与版本,而不是只保存一张“回答不错”的截图。

第一步:建立可核对的资料清单

给每份资料分配 document_id、版本、生效日期、访问范围和标题。重复版本不要混成同一份正文;表格表头应跟随对应行,步骤标题应保留在分段里。抽查一个包含数字或条件的段落,确认导入后没有丢失单位、否定词和合并单元格含义。先手动定位目标答案所在的原文;如果连人工都找不到依据,该题就不应被列为可回答。更换切片参数前保留原索引配置,方便与基线比较。

第二步:准备四类问题,不只问送分题

可先整理十二题作冒烟集,每类三题:资料中有明确答案;资料没有答案;新旧版本答案不同;当前账号无权限访问答案。十二题只是低成本起点,不代表统计上足以证明质量。每题必须由你从真实资料确定预期和依据,不要让同一个模型同时编造资料、生成问题、给自己打分。下面是空白记录模板,字段需要据实填写。对于不可回答的问题,预期行为应是说明信息不足或请求补充,而不是捏造一个结论。

{
  "id": "填写题目编号",
  "kind": "answerable / unanswerable / version / permission",
  "question": "填写真实问题",
  "account_scope": "本次账号可访问的范围",
  "expected_claims": [],
  "expected_source_ids": [],
  "expected_behavior": "回答 / 说明依据不足 / 拒绝越权",
  "retrieved_source_ids": [],
  "answer": "填写实际回答",
  "citation_correct": null,
  "latency_ms": null,
  "notes": "填写人工判定理由"
}

第三步:固定条件跑基线

固定模型、提示词、知识库版本、召回数量和账号权限,逐题保存检索片段与最终答案。同一条件可重复三轮观察波动,但不要只挑最好的一轮展示。分别记录:可回答题中,检索结果是否包含必要依据;答案是否满足全部必要事实且没有矛盾;引用能否支持对应结论。分母必须写清楚,例如“9 道可回答题中 7 道检索到依据”,不能把不可回答题混入召回分母。把失败题单独列出来,不能用一个平均分掩盖越权或编造来源。

第四步:按证据定位,而不是不断加提示词

若原文存在、检索不到,检查入库是否完成、语言与术语是否一致、过滤条件是否误排,必要时尝试同义表达或结合关键词检索。若检索到的片段缺少前提,调整切片边界或补充标题上下文。若依据已齐全但答案错误,限制回答只依据所给资料并逐项引用,检查片段是否超过实际上下文预算。若版本冲突,先处理文档生效范围,不让模型自己猜哪份更新。每轮只改一个变量,再跑完全相同的一组题。

第五步:验证引用与权限

引用验证不能只检查链接是否能打开。把答案拆成可判断的主张,逐项查看所引片段是否真正支持,包括适用条件、日期和数字单位。权限应在检索阶段按登录身份限制,不能只在提示词里写“不要泄露”;检查未授权文档是否出现在检索结果、日志和前端调试面板。若文档中含“忽略规则”等命令,应当作资料文本,不执行其中的指令。对于权限错误,先停止开放相关问答,再修权限链路,不能用免责声明代替隔离。

上线门槛、维护与常见误区

先按业务风险写门槛,再看结果,避免测试后为了通过而降低标准。入门资料助手可以保留人工确认;影响交易或内部敏感数据的助手需要更严格评审。门槛至少涵盖关键事实、无依据时的行为、引用、访问权限和响应耗时。把失败题加入长期回归集,更新资料、检索参数或模型后都重跑,同时保留一组未参与调参的问题检查泛化。本文提供的是评测流程和记录模板,不是任何模型或知识库产品的实测排名。

配套工具与教程

    资料来源