RAG 知识工程
设计文档接入、检索、引用与知识更新链路。
构建与验证 / 数据与知识定位整体框架 ↗
本页目录
内容接入
确认数据来源、更新频率、权限、语言、版本和责任人。扫描件先完成 OCR 和抽样校验,表格、代码和步骤不能在转换中丢失结构。
切片原则
- 优先按标题和语义边界切片,不做机械定长截断。
- 操作步骤、异常说明和代码块保持完整。
- 每个切片携带文档标题、父级标题、版本和原始地址。
- 通过内容 Hash 实现增量更新和旧索引删除。
检索链路
查询改写 → 关键词与向量混合召回 → 元数据过滤 → 去重 → 重排 → 上下文组装 → 模型回答 → 引用展示。
必测问题
- 精确错误码是否能命中。
- 同义表达和口语问题是否能命中。
- 旧版本内容是否被正确过滤。
- 无答案时是否诚实拒答。
- 用户是否只能检索有权限的资料。
- 引用是否真正支持回答结论。
更新验证
更新知识后检查文档数量、切片数量、失败记录、索引版本和抽样召回结果。索引任务完成不代表知识已经可用。
贯穿案例的最小切片元数据
{
"chunk_id": "M-101-v2-03",
"document_id": "M-101",
"tenant_id": "tenant-a",
"version": "v2",
"device_model": "P-100",
"access_group": "support",
"source_section": "告警 A17",
"active": true
}
字段仅为合成设计。文档级访问规则在切片中保留,并在检索、引用下载与缓存复用时执行。先过滤还是后过滤需要结合检索引擎实现验证;最终任何返回内容都必须授权。
分开评测检索与回答
| 现象 | 验证方法 | 优先处理 |
|---|---|---|
| 找不到已知段落 | 固定问题检查候选集合 | 解析、切片、过滤与词汇 |
| 找到旧版本 | 检查元数据与激活状态 | 版本规则与删除传播 |
| 有证据却回答错误 | 固定证据再评生成 | 提示、截断与模型 |
| 引用看似相关但不支持结论 | 主张逐条对照原文 | 回答约束与人工评分 |
Recall@k 可用于衡量前 k 个结果覆盖了多少已标注相关片段,但标注集合必须清楚;只有一个标准片段的种子集不能代表复杂文档召回。
更新与撤销演练
依次添加 v2、停用 v1、删除一个片段、撤销一个访问组,再验证候选、回答和缓存。索引切换成功之外还要检查旧引用失效情况。无证据时转人工,不凭模型记忆补排障步骤。
基础研究可阅读 RAG 原始论文;这里的权限、版本与更新流程是针对工程案例的设计,不能视为论文自动提供的能力。
参考阅读与使用边界
本页为基础指南;生产操作需结合实际版本、授权环境与审核证据验证。