RAG 从 Demo 到生产检查清单
RAG 具备生产就绪度,不是因为它能回答几个演示问题,而是因为数据与索引可追溯、检索遵守权限、答案引用可验证、质量可以回归、成本和故障可控制,并且发布可以停止、降级和回滚。清单中的每一项都应对应负责人和证据。
先说结论
上线评审先检查三个不可妥协的条件:
- 不能越权:未授权内容不会进入召回候选、缓存、日志或回答。
- 不能无依据装作确定:系统能返回可验证引用,并在证据不足时拒答或降级。
- 不能不可逆:数据、索引和配置有版本,出现质量或安全事故时能够停止流量并回到兼容组合。
本文不提供通用准确率、延迟、Chunk Size、Top-K 或成本阈值。团队应根据业务风险、真实语料、服务目标和预算建立基线,记录阈值依据,并在数据或模型变化后复核。
适合谁,不适合谁
本文适合企业知识库、客服检索、内部问答、文档助手,以及把知识库作为 Agent 工具的项目。它可以用于方案评审、上线门禁和事故复盘。
它不是行业合规认证,也不能替代安全、隐私、法务和业务专家评审。医疗、金融、公共安全或其他高风险场景需要额外控制。若还不清楚 RAG 的索引和查询链路,先读 RAG 完整工作原理。
如何使用这份清单
为每个检查项记录:
| 字段 | 说明 |
|---|---|
| 状态 | 未开始、进行中、通过、接受风险或阻断 |
| 负责人 | 能执行修复和批准结果的人 |
| 证据 | 测试报告、配置、仪表盘、审计记录或演练记录 |
| 适用范围 | 租户、知识库、数据类型、模型与发布版本 |
| 复核时间 | 数据、依赖或业务变化后的下一次检查 |
“代码里做了”不等于通过。评审者应能从证据复现结论;无法说明的项目按未完成处理。
1. 数据质量与生命周期
- [ ] 已列出全部数据源、所有者、数据分类、处理目的和允许使用范围
- [ ] 文档导入会校验格式、大小、编码、重复和恶意文件风险
- [ ] PDF、网页、表格、代码和扫描件有代表性解析抽检
- [ ] 页眉页脚、阅读顺序、表头、标题路径和来源定位不会被错误清洗
- [ ] 原始文档与派生文本分离,清洗过程可重放且有版本
- [ ] 文档 ID、源版本、内容哈希、解析器版本和导入时间可追溯
- [ ] 新增、更新、权限变化和删除都有明确传播路径
- [ ] 失败任务可重试且幂等,不会产生重复或半成品索引
- [ ] 删除覆盖向量索引、关键词索引、缓存、引用和受影响的派生数据
- [ ] 数据保留、删除请求、备份恢复和第三方处理符合组织政策
深入方法见 RAG 文档导入与清洗。
2. 切片与索引
- [ ] 切片优先保留标题、段落、列表、表格、代码和 FAQ 等语义边界
- [ ] Chunk 保留稳定 ID、文档 ID、版本、标题路径、原文定位和访问范围
- [ ] 长度单位明确为字符、Rune 或指定 tokenizer 的 Token
- [ ] Chunk Size 与 Overlap 由代表性评估集选择,而不是复制示例参数
- [ ] 不同文档类型可以使用不同切片策略,并记录策略版本
- [ ] 重叠片段有去重方案,不会无控制地增加上下文与成本
- [ ] Embedding 模型、预处理、向量维度和距离度量保持兼容
- [ ] 新索引构建完成并抽检后再切换读取,不向在线索引混写不兼容向量
- [ ] 索引别名或版本映射可以定位当前读版本并支持回退
- [ ] 重建任务有容量评估、进度、失败统计与取消能力
决策方法见 RAG 文本切分与 Chunk Size。
3. 检索质量与失败处理
- [ ] 评估集覆盖事实、精确术语、条件、跨段、无答案和历史故障问题
- [ ] 向量、关键词、查询改写、融合和重排分别可开关、可观测
- [ ] 候选数量、融合参数、重排和截断规则有实验记录
- [ ] 可以查看最终候选的 Chunk ID、来源、排名、版本和过滤原因
- [ ] 召回、重排和上下文组装的超时与错误分类清晰
- [ ] 任一路检索失败不会被静默记为完整成功
- [ ] 零召回、低证据和依赖故障有明确拒答或降级策略
- [ ] 重复 Chunk、过期版本和冲突文档有确定性处理规则
- [ ] 查询与文档语言、专有名词、错误码和缩写经过真实语料验证
- [ ] 修改检索策略后运行同一数据快照上的版本回归
排查顺序见 RAG 检索不准怎么排查。
4. 权限与租户隔离
- [ ] 身份来自可信认证链路,模型或用户文本不能声明自己的权限
- [ ] 服务端根据用户、租户、角色和资源策略生成过滤条件
- [ ] 权限过滤覆盖向量、关键词、缓存、重排和引用打开接口
- [ ] 重排与生成只接触已授权候选,不依赖 Prompt 要求模型保密
- [ ] 管理接口、查询接口和 Agent 工具使用一致的授权事实来源
- [ ] 权限变化和撤权能使索引、缓存和分享链接按设计失效
- [ ] 跨租户、越权角色、已删除文档和撤权用户有负向测试
- [ ] 检索后过滤的场景已评估候选不足与信息侧信道风险
- [ ] 权限拒绝、策略版本和最终引用有审计记录
- [ ] 管理员调试能力受额外权限、审批和审计约束
项目中的服务端过滤与多索引一致性示例见 企业级 RAG 知识库。
5. 引用与答案边界
- [ ] 每个可展示引用来自本次请求的真实授权候选
- [ ] 引用包含文档 ID、版本、标题路径及可验证定位
- [ ] 返回前校验引用存在、未失效,并支持相邻答案陈述
- [ ] 用户打开引用时再次鉴权,而不是依赖生成时的权限结果
- [ ] 文档更新或删除后,旧引用有明确失效与提示机制
- [ ] 冲突来源按版本、权威性和时效规则处理,不让模型自行猜测
- [ ] 证据不足时系统明确无答案、请求澄清或转人工
- [ ] 引用格式与前端渲染经过注入和不可信 URL 测试
- [ ] 生成模型不能伪造未被检索到的来源 ID
- [ ] 引用缺失、失效和不支持陈述的情况进入质量指标
6. 离线评估、线上反馈与回归
- [ ] 评估项包含问题、预期证据、参考答案、访问上下文、标签和审核状态
- [ ] 样本来自真实问题、业务专家、边界案例和历史故障,而非只用合成数据
- [ ] 检索、上下文、生成、引用、权限与系统指标分层评估
- [ ] Golden Dataset 有版本、变更审核和数据权限
- [ ] 评估运行锁定数据、索引、检索、Prompt、模型和 Judge 版本
- [ ] LLM-as-a-Judge 已使用人工样本校准,失败与不确定结果单独处理
- [ ] 候选版本同时报告总体结果、关键分组和逐案例退化
- [ ] 线上负反馈、无答案、引用点击和人工改写可关联到请求版本
- [ ] 线上样本经过脱敏、授权和审核后才进入回归集
- [ ] 发布阻断与灰度停止条件由业务风险和基线决定,并有批准记录
完整方法与面试中的效果证明见 RAG 评估。
7. 观测、日志与审计
- [ ] request ID 贯穿导入、Embedding、检索、重排、生成和引用
- [ ] 系统指标覆盖请求、错误、取消、阶段耗时、队列、限流和资源饱和
- [ ] 质量指标覆盖零召回、无答案、引用错误、权限拦截和用户反馈
- [ ] 日志和 Trace 能识别应用、Prompt、模型、索引与检索配置版本
- [ ] 默认记录 ID、版本和统计,而不是完整 Query、Chunk 或 Prompt
- [ ] 正文采样有审批、脱敏、隔离存储、访问审计和保留期限
- [ ] 指标标签避免用户 ID、原始文本等敏感或高基数字段
- [ ] 每个告警有阈值依据、负责人、操作手册和升级路径
- [ ] 仪表盘可以按租户、知识库、查询类型和版本定位局部退化
- [ ] 审计证据在回滚和事故处理中不会被覆盖或提前删除
实现边界见 RAG 部署与可观测性。
8. 成本与容量
- [ ] 记录导入、Embedding、存储、检索、重排、生成和观测的成本来源
- [ ] 用组织核验的账单或费率估算,不复制未经维护的固定价格
- [ ] 对单请求输入、候选、上下文、输出、重试和并发设置硬上限
- [ ] 对租户、知识库和功能设置预算、配额、限流和异常用量告警
- [ ] 文档去重、增量 Embedding 和缓存不会绕过版本与权限
- [ ] 缓存键包含租户、权限、数据和配置版本,失效路径经过测试
- [ ] 压测覆盖长文档、批量重建、热点查询、慢依赖和流式断开
- [ ] 供应商限流或不可用时有排队、拒绝或经过评估的降级
- [ ] 降级策略同时验证质量、权限与真实成本,而不是只验证能调用
- [ ] 容量扩展、索引重建和备份恢复不会挤占在线服务关键资源
通用预算方法可继续阅读 LLM 成本控制。
9. 安全与隐私
- [ ] 文档、用户 Query、检索结果和工具返回均按不可信输入处理
- [ ] 文档内提示注入不能覆盖系统规则、伪造授权或触发工具
- [ ] 上传执行文件类型、内容、大小、压缩包和恶意载荷检查
- [ ] HTML、Markdown、链接和下载内容在展示时进行对应安全处理
- [ ] 密钥由服务端密钥系统管理,不进入仓库、镜像、日志和 Prompt
- [ ] 发送给外部模型或服务的数据范围、地域和保留政策经过批准
- [ ] 敏感数据识别、脱敏、删除和数据主体请求覆盖全部派生副本
- [ ] Agent 使用知识库时,检索工具只读、参数受 Schema 和 allowlist 限制
- [ ] 滥用、批量枚举、数据外带和异常查询模式有限流与响应流程
- [ ] 安全测试与残余风险由有权限的负责人审核,不由模型自审代替
10. 部署、灰度与运行
- [ ] 镜像、依赖、应用和配置可追溯,生产凭据不进入构建产物
- [ ] 运行用户、网络访问、文件系统和资源权限遵循最小权限
- [ ] Readiness、Liveness、优雅关闭、超时和取消行为经过验证
- [ ] 数据库与索引迁移前后兼容,读写版本切换顺序明确
- [ ] 发布组合包含应用、Prompt、模型、切片、Embedding、索引和检索配置
- [ ] 离线回归通过后再进入内部验证、影子流量或小范围灰度
- [ ] 每个阶段有扩大、保持和停止条件,不只观察 HTTP 错误
- [ ] 流式中断、依赖超时、部分检索失败和队列积压有演练记录
- [ ] 值班人员可以查看质量与系统仪表盘,并有处理权限
- [ ] 上线后复核时间、负责人和评估集更新流程已经安排
11. 降级与回滚
- [ ] 有停止新生成请求、索引写入或 Agent 检索工具的独立开关
- [ ] 可降级为授权搜索、只读结果、人工队列或明确拒绝
- [ ] 降级不会关闭鉴权、引用校验、审计或数据保护
- [ ] 上一个应用与配置组合仍可用,目标索引和 Schema 与之兼容
- [ ] 索引通过别名、版本或快照切换,避免原地覆盖后无法恢复
- [ ] 回滚包含 Prompt、模型路由、Embedding、检索参数和缓存失效
- [ ] 已演练错误权限规则、质量退化、Provider 故障和索引构建失败
- [ ] 回滚步骤、所需权限、预计影响和验证查询写入操作手册
- [ ] 回滚后运行关键权限与质量冒烟集,并继续观察事故信号
- [ ] 事故证据、审计记录和受影响版本在处置完成前得到保留
常见误区与失败边界
- 只做端到端准确率:无法区分解析、切片、召回和生成中的问题。
- 把引用当装饰:有文件名不代表来源支持陈述,也不代表用户有权打开。
- 先召回全部,再让模型保密:模型不是授权边界,越权内容不应进入候选。
- 照抄 Chunk、Top-K 和分数阈值:不同语料、模型与数据库的分数和成本不可直接迁移。
- 只监控 5xx:质量退化、错误引用和数据泄露可能以成功响应返回。
- 回滚只回容器:错误索引、Prompt、权限规则和缓存仍会继续影响答案。
- 上线后自动把用户数据加入评估集:这可能破坏隐私、权限与评估基线。
清单通过只能说明当前范围内已有证据,不代表系统永久安全。数据、模型、依赖、权限或业务目标变化后都需要重新评审。
可执行检查清单
发布负责人最终确认:
- [ ] 数据来源、质量、生命周期和索引版本均可追溯
- [ ] 切片和检索参数来自代表性评估,而非示例阈值
- [ ] 权限过滤覆盖全部检索、缓存、重排与引用链路
- [ ] 答案引用真实、可访问、可定位,并有证据不足策略
- [ ] 离线、线上和回归评估覆盖质量、安全与关键业务分组
- [ ] 系统、质量、成本和安全信号均可观测并有负责人
- [ ] 敏感数据不会未经批准进入外部服务、日志或评估集
- [ ] 容量、配额、超时、取消和依赖故障经过验证
- [ ] 灰度扩大与停止条件明确,降级和完整组合回滚已演练
- [ ] 上线批准、接受风险、复核日期和事故响应路径有记录
下一步
回到 RAG 专题按数据、切片、检索、评估和部署顺序补齐知识。若要把检查项落实为可展示项目,下一步进入 企业级 RAG 知识库,再回到 AI 项目作品集整理业务目标、个人职责、验收报告和复盘证据。
