检索:把正确的依据交给正确的人
本页目录 · 7 个段落
“北辰项目周五能否上线?”的困难不是生成一段回答,而是旧计划、工程更新与安全调查同时谈到北辰,只有部分材料适合当前用户。检索应同时解决相关性、授权、时效和依据完整性;向量相似度只解决其中一部分。
项目成员真正需要的交付可以是:
周五上线尚不能确认。当前计划只给出目标时间[PLAN-r2],工程验收更新仍有阻塞项[READY-r1];请发布负责人核对验收与批准回执。
这份答复把目标、当前事实与下一步分开:没有替负责人作上线决定,也没有只说“资料有冲突”。随答复交付的依据应让读者核对:
| 引用 | 当前可见原文 | 定位与版本 |
|---|---|---|
| PLAN-r2 | 北辰项目仍以周五为目标;最终时间取决于工程验收,不是上线批准。 | 第2段,revision 2,2026-10-14 09:00 UTC更新 |
| READY-r1 | 北辰项目验收阻塞项未关闭,周五上线尚不能确认。请向发布负责人取得验收及批准回执。 | 阻塞项表第1行,revision 1,2026-10-15 08:00 UTC更新 |
以上任务、资料和答复均为原创合成示例,查询截至2026-10-15 10:00 UTC。配套程序用受控原句白名单选择预录答复,没有调用LLM;它让我们先检查资料、对象和交付如何连接,再单独验证开放文本生成能力。下面沿这笔任务说明如何得到这两条依据。
先决定应该查什么
实时配送、余额和订单状态应查业务API;固定指标应走语义模型或参数化查询;解释性制度、手册与工单适合文档检索。若几个短文档能直接放进上下文,不必先建向量库。需要精确对象或编号时,关键词与过滤通常比单纯语义搜索直接;用户表达与文档术语不同、内容规模较大时,再考虑语义检索及混合搜索。
| 任务 | 第一选择 | 需要验证的风险 |
|---|---|---|
| 查商品SKU对应说明 | 精确ID+关键词 | ID歧义、产品版本 |
| 找某类故障处理经验 | 关键词与语义候选 | 同名设备、适用条件 |
| 算部门收入 | 已定义查询/数据API | 口径、期间、权限 |
| 综合项目进度 | 多来源检索 | 旧承诺、冲突、缺失 |
查询扩展、混合检索、重排序与多轮检索分别处理术语差异、候选覆盖、排序和取证不足。查询扩展可能改变意图;多轮搜索会增加成本并产生新的冲突。只有错误分析显示某环节确实不足,才增加对应机制。
先取得资料,再判断哪些能成为依据
项目资料通常来自文档系统、工程工单和发布台账。接入前请资料负责人确认项目标识、文档系列、当前版本、可见范围与来源位置;工程负责人提供验收事实,发布负责人提供批准及上线回执。不能把服务账号能搜到的内容直接当成普通成员可见的知识。
北辰示例把这些输入缩成五份受控文档。实际项目可以先人工导出经批准的小范围资料,核对原文与元数据,再决定是否接连接器和自动更新;无需先建向量库。
| 初始资料 | 为什么可能被找到 | 能否用于当前项目成员的答复 |
|---|---|---|
| PLAN-r1,10月10日旧计划 | 包含北辰、周五、上线 | 否,同系列已有r2 |
| PLAN-r2,10月14日当前计划 | 同时包含项目和目标时间 | 是,支持目标,不支持批准 |
| READY-r1,10月15日工程更新 | 包含项目、验收和阻塞事实 | 是,支持尚不能确认 |
| SEC-r1,受限调查 | 同样提及北辰项目 | 否,仅安全组可见 |
| OTHER-r1,南星批准记录 | 正文提及北辰协作团队 | 否,项目对象是南星 |
这里普通成员身份为project_member,所属组为beichen;visitor没有项目访问组。身份应从可信认证系统取得,不能接受请求正文自报的组。示例将身份映射放在本地夹具中,只为便于检查,不是登录系统。
资料进入索引或上下文时,需要保留可追溯对象。例如实际使用的工程更新记录为:
{
"id": "READY-r1", "project": "beichen", "kind": "readiness",
"revision": 1, "updated_at": "2026-10-15T08:00:00Z",
"acl": ["beichen"], "location": "阻塞项表第1行",
"text": "北辰项目验收阻塞项未关闭,周五上线尚不能确认。请向发布负责人取得验收及批准回执。",
"fact": "blocked"
}
fact在本例是可信合成输入,不是模型自填的判断。真实文档接入需另外检查抽取与审核。切块时若只剩“周五上线”,丢掉“尚不能确认”,真实原文也会变成误导依据。表格应保留列名和单位;维护资料应保留型号与故障条件。生产索引还应记录源位置和索引时间,以区分源文件已改、索引尚未更新;本地示例没有实现索引同步。
权限由确定性系统过滤。服务账号能读文档不表示终端用户可以看。Onyx研究展示了身份、文档访问对象、索引权限字段和查询过滤之间的关系,也提示公开布尔字段与ACL数组需一致。固定版本的元数据更新存在权限投影缺项,函数级检查尚不足以证明线上越权;接入时需要验证公开转私有后的实际搜索结果。
一条可诊断的检索管线
先用关键词建立一个能检查的基线。对北辰问题,仅按固定词表“北辰、周五、上线、验收、批准”在五份标题和正文中计数,会同时找到旧计划、南星批准和受限调查。找到相关字样只说明它是候选,不能证明对象正确、用户可见或结论成立。这个全库基线仅供可信研究者在本地比较,不能接到用户答案接口。
正式路径按下列次序工作:
- 确定对象与系列头:在受控元数据层限定
project=beichen,为每个文档系列找最高revision。示例用同项目同kind代替系列ID;真实系统应有明确series_id。 - 检查当前版本是否可用与获权:头版本撤回、时间在未来或最高版本号重复时,示例暂时封闭该系列;当前身份无权读取头版本时也不回退旧版。否则一份已撤回的计划可能因旧版仍可读而重新成为“当前计划”。未来头封闭是本包的保守政策,真实系统应按明确生效日期合同决定,不能默认照搬。
- 读取并排名正文:再次核对项目、文档ID、类型、revision和更新时间的关联,再按ACL读取正文、计算词法候选。当前普通成员得到PLAN-r2和READY-r1;安全调查不进入正式排名,南星批准不能借同名词或同ID混入北辰。
- 核对事实支持:本例只接受三条完整已审阅原句与可信枚举的精确绑定。PLAN-r2支持周五目标,READY-r1支持阻塞未关闭;不同事实类型均保留,不用一份较新的计划替代工程验收。新的改写句即使含“周五、目标”也不会自动通过,因为它可能说“周五不再是目标”。
- 交付答复与依据:返回开头所示答复,以及引用ID、原文引句、位置、版本、更新时间、查询截至时间和下一负责人。受限文档的名称、ID、数量和片段都不出现在用户交付中。用户打开原文、复用缓存或分享答案时,仍须保持相同授权条件;这些生产路径未由本例实现。
这条路径依赖完整可信系列元数据。如果源系统没有把受限新版本或撤回墓碑同步过来,本地程序无法知道旧资料已不适用。权限和新鲜度不是检索函数外面的一张检查表,而是决定哪些依据可以进入答案的输入合同。
混合搜索可分别找关键词和语义候选,以排名融合合并,避免直接把不可比分数相加。重排序再判断候选是否支持问题;重复内容去重,相关段落可带必要上下文。不要用全局相似度阈值宣称“答案可信”:不同内容、模型与问题的分数分布会变。
候选较多或表达变化较大时,再比较混合搜索与重排序。它们可以改善“找到什么、先看什么”,不能将目标变批准或补造缺失回执。只有计划时,北辰答复应缩到“周五为目标,等待验收/批准”;访客没有依据时,应说明当前可用且已授权的资料不足,不能说项目不存在;要求批准回执时,即使找到计划与工程更新,也仍需向发布负责人取证。没有材料支持的成功,不应由生成器补全。
分开评测找资料与写答案
先用人工认可的任务建立所需依据集合,记录允许与禁止材料。检索评测检查关键依据是否进入候选、是否被重排序丢失;生成评测检查主张是否受到引用支持、是否遗漏条件或误读时间。一个有引用的答案仍可能引用无关段落。
至少加入正常检索、同名对象、旧版内容、空结果、冲突材料、用户撤权、文档改公开为私有、删除后缓存、群组变化和同步失败。撤权演练必须检查真实查询结果与展示路径,不能仅检查数据库里的ACL字段。若权限传播有延迟,明确可接受窗口及应急停用路径。
将失败归因到内容缺失、切块、查询表达、候选召回、权限过滤、重排序或生成,逐层修复。资料本身缺失时,增加关系图检索或多轮搜索也不能补出事实,只会增加调用和冲突。评审一条答案时,应能说明:某答案依据在哪里、用户为何可见、材料何时更新、缺依据如何处理。进入工具或评测章节时,保留这些对象和版本信息。
用同一任务改变条件,更容易看清修复应落在哪里:把问题改成“本周末前可以投产吗?”,本例固定词表会漏召回,应先检查术语和查询表达;将PLAN-r2改成周二计划,可信原句绑定失效,应停在依据不足;新增受限r3或撤回墓碑,应停止使用旧计划。可在北辰示例运行说明运行这份数据与27项离线断言,查看身份切换方式。断言预期由AI依据合成资料显式写定,未用答复函数反算期望,也未经业务专家认可;它们检查有限程序行为,不是模型生成、真实权限或读者学习效果验证。
检索范例与流程时,仍要重新取得当前事实
营销改写可能需要相似写法,工单聚合查询可能需要类似问题的处理步骤。两者都不能把历史内容当当前事实。CRMAgent按同商户同受众、跨商户相似品类/券、无范例时的规则改写选择参考;旧范例的“无门槛50元”不能进入本次“满200减20”活动。CRMWeaver检索的是流程指南,旧季度结果不能进入新季度答案。范例与流程专题把这两笔任务拆到可审阅中间产物。
流程记忆的命中率与答案正确率应分开测:指南是否适用当前schema、口径及权限;当前查询是否执行成功;结果能否回到事实。缺资料先补资料,重复步骤先试指南检索;只有训练基线、任务轨迹与可验证奖励俱备时才进入RL方案。CRMWeaver基准研究不能证明所有CRM需要训练。
Bosch还提供第三种材料:本体与关系路径。若用户问“机器A的传感器读数”,只召回A和传感器名称,漏掉相连关系路径,生成SPARQL仍会错。其上下文裁剪围绕相关schema。17题基准的定量评测核对生成查询中的主语、谓语、宾语词项是否与本体匹配,每个实验重复5次并报告均值;另由三名专家评价查询的正确性与完整性。这些指标评的是查询,不等于已用查询执行结果核验业务答案。论文§4.3–4.4
迁移到自己的系统时,再增加只读查询执行、结果集与业务认可答案的核对;“回答带引用”不能替代这些检查。主线应先确定文档、schema、范例或流程哪一种缺失,再选检索方法,而不是把模式数量当成熟度。
参考资料
- Onyx固定源码:身份、索引权限投影及查询过滤。该版本的元数据更新载荷缺项仅有函数级检查支持,尚无真实搜索索引的越权验证。
- Generative AI Design Patterns 第4章:查询扩展、混合搜索与重排序的方案比较;私有章节笔记和待审译稿用于辅助理解。
- 范例与流程专题:CRMAgent v2、CRMWeaver v1的版本、方法与评价范围;Bosch案例:schema裁剪与17题查询基准。
- 北辰资料与预录答复为原创合成教学设计,JSON与本地数据一致;本地断言不代表真实检索服务或LLM运行。
继续使用
上一章:模型与上下文 · 下一章:工具与系统集成 · 五篇阅读目录。相关工具:记录检索方案取舍。
案例延伸:Bosch制造查询:查看为什么漏掉关系路径会让查询执行失败。
来源与使用范围
方法综合公开研究与教学推演;参考资料、适用条件和示例边界见正文。
一起判断下一步
带一笔任务,聊一个具体决定。
培训、方案评审或落地辅导,从你的工作材料与当前困难开始。