10 RAG 最小工程链路与权限检索
章节目标
掌握 RAG 从文件进入、解析、清洗、切分、入库、检索、引用、权限过滤到评估的最小工程链路。
开篇案例:为什么“知识库问答”最容易翻车
很多团队第一次做企业 AI,都会从知识库问答开始,因为它看起来最简单:上传文档、建向量库、接模型,就能回答问题。但真实现场最常见的失败也在这里:制度版本不一致,扫描件解析错,表格被切碎,用户问的是业务口语,系统引用的是过期条款,或者普通员工搜到了高权限文件。
RAG 的难点不是 embedding,而是把企业知识变成一条可维护、可追溯、可评估、可权限控制的工程链路。
FDE 做 RAG,不能只问“召回效果怎么样”,还要问:这个答案来自哪份资料、哪个章节、哪个版本?用户是否有权看到?如果答案错了,我能否复现并修复?
最小链路
文件采集 -> 文档解析 -> 数据清洗 -> Chunk 切分 -> 向量入库 -> 检索增强 -> 权限过滤 -> 答案生成 -> 引用评估
关键步骤
文件采集
来源包括 PDF、Word、Excel、CSV、网页、图片 OCR、邮件附件、共享盘和系统导出表。
文档解析
解析正文、表格、页码、标题层级、版本号、生效日期和附件关系。
数据清洗
处理页眉页脚、重复段落、异常字符、空页、错位表格、脱敏和元数据缺失。
Chunk 切分
按业务语义切分,而不是只按字数。制度按条款,SOP 按步骤,FAQ 按问答,表格按业务对象。
检索增强
常见方法包括混合检索、Rerank、Query Rewrite、元数据过滤和引用溯源。
Secure RAG
企业 RAG 的核心不是“能搜到”,而是:
- 检索是否遵守源系统权限。
- 访问是否有日志。
- 敏感字段是否脱敏。
- 过期文档是否排除。
- 引用是否可追溯。
RAG 失败模式与调试
| 失败类型 | 表现 | 排查方向 |
|---|---|---|
| 解析失败 | 表格错位、OCR 乱码 | 重跑解析、检查源文件版本 |
| 切分不当 | 答案跨 chunk、上下文断裂 | 按业务语义重切 |
| 检索漏召 | 明明有资料却未命中 | 混合检索、元数据过滤、Query Rewrite |
| 引用错误 | 页码或条款对不上 | Rerank、引用校验规则 |
| 权限泄漏 | 返回无权文档片段 | 源系统权限同步、检索前过滤 |
| 幻觉补全 | 无依据仍生成结论 | 强制引用、拒答策略、人审 |
调试时 Trace 应能溯源到 资料 / 章节 / 版本,而不只是最终答案文本。
RAG PoC 的最小验收样本
一个轻量 RAG PoC 至少准备 20 条样本,建议按下面分布:
| 类型 | 数量 | 示例 |
|---|---|---|
| 典型问答 | 8 | 制度条款、流程步骤、FAQ |
| 边界问法 | 4 | 口语化、多意图、缺少上下文 |
| 引用校验 | 4 | 必须给出页码、章节或版本 |
| 权限样本 | 2 | 普通用户无权查看的资料 |
| 失败/对抗 | 2 | 要求编造、越权、忽略规则 |
这 20 条样本不是为了追求完美分数,而是帮助团队发现 RAG 失败主要来自解析、切分、检索、权限还是生成。
现场调试顺序
当 RAG 答错时,按这个顺序排查:
- 源文档是否正确:版本、密级、页码是否一致。
- 解析是否正确:表格、标题、附件是否丢失。
- 切分是否正确:答案是否被拆到多个 chunk。
- 检索是否命中:关键词、向量、Rerank 是否拿到正确片段。
- Prompt 是否约束引用:没有依据时是否拒答。
- 权限是否过滤:用户看到的内容是否符合源系统权限。
不要一上来就换模型。很多 RAG 问题,模型只是最后背锅的人。
实操任务
为一个知识库场景设计 RAG 链路:
- 文件来源。
- 元数据字段。
- Chunk 策略。
- 检索策略。
- 权限过滤规则。
- 评估样本。
交付物
- RAG 工程方案。
- 元数据字段表。
- 权限过滤规则。
- 20 条 Golden Dataset。
常见误区
- 只关心 embedding,不关心解析质量。
- 只做向量检索,不做权限过滤。
- 没有引用页码和来源。
- 没有失败样本。
检查清单
- 是否能追溯答案来源?
- 是否能按部门、角色、密级过滤?
- 是否能处理过期文档?
- 是否有召回率和引用准确率指标?