生产级检索增强生成(RAG)与知识系统
生产级检索增强生成(RAG)架构:从文档到答案的责任链
学习目标
- 理解生产级检索增强生成不只是向量检索。
- 能画出离线索引和在线查询两条链路。
- 能定位答案错误可能来自哪一层。
核心概念
生产级检索增强生成(RAG)是一条责任链。离线侧负责接入文档、清洗、切分、权限标记、嵌入(Embedding)、索引和回收。在线侧负责接收问题、改写查询、检索、过滤、重排、组装上下文、调用模型、生成引用和记录评测信号。
这条链路的每一层都可能失败。文档过期会导致答案引用旧政策;切分太碎会丢失上下文;权限过滤错误会泄露资料;重排不准会把正确片段压到后面;提示词不清会让模型忽略引用。
生产设计的目标不是保证永远正确,而是让错误能被定位、被复现、被修复。你需要知道一次失败来自索引、召回、权限、上下文还是生成。
示例与拆解
一次课程知识问答可以被拆成:
1{ 2 "offline": ["load_documents", "clean_text", "chunk", "attach_acl", "embed", "index"], 3 "online": ["rewrite_query", "retrieve", "permission_filter", "rerank", "assemble_context", "generate_answer", "log_trace"] 4}
如果用户问“企业版退款规则是什么”,最终回答却引用了个人版条款,可能问题不是模型,而是检索或权限层:
1检查顺序: 21. top_k 里是否有企业版退款片段 32. 个人版片段为什么排在前面 43. 当前用户是否有企业版资料权限 54. 提示词是否要求优先使用同版本资料
常见误区
- 误区一:把检索增强生成等同于向量库。向量库只是索引和召回的一部分。
- 误区二:只记录最终答案。没有检索和上下文记录,就无法复盘错误。
- 误区三:所有文档统一处理。政策、FAQ、代码、表格和聊天记录需要不同切分策略。
小练习
为一个“内部产品政策助手”画出离线索引和在线查询链路,至少包含 10 个节点。
实操检查点
给每个节点补 3 个字段:输入、输出、失败时如何发现。不要只画流程图。
1节点:permission_filter 2输入:candidate_chunks, user_acl 3输出:visible_chunks 4失败发现:答案引用了用户无权访问的文档,或日志中 visible_chunks 为空
随堂测验
完成本章测验,重点检查你是否能从责任链角度分析检索增强生成失败。
本章总结
生产级检索增强生成是文档、索引、权限、召回、重排、生成和观测的责任链。链路清楚,问题才能定位。
下一步学习指引
下一章学习权限过滤、租户隔离和知识治理,处理检索增强生成上线后最容易出事故的边界。