Chico Notes

RAG 技术图解:从基础链路到工程扩展

用架构图解释 Retrieval-Augmented Generation 的索引、检索、重排和生成链路。

持续修订的工程笔记

RAG(Retrieval-Augmented Generation,检索增强生成)是一种让 LLM 在回答时使用外部知识的架构模式。它的价值不在于让模型“记住”更多内容,而是在生成前检索可追溯证据,并把答案约束在这些证据之上。

RAG 核心概念图

什么是 RAG?

大模型的训练知识有截止时间,也无法天然访问企业私有文档、产品手册、代码仓库或业务数据。RAG 通过外部检索系统把相关证据送入上下文,用来降低知识过期、事实错误和不可追溯的问题。

如上图所示,RAG 通常位于用户问题和模型生成之间,负责把问题转化为可检索请求,并把检索结果整理成模型可使用的上下文。

一张图看懂核心链路

RAG 不是一个单点能力,而是一条离线索引链路和一条在线问答链路的组合。离线链路决定知识是否能被正确召回,在线链路决定答案是否能被正确约束。

核心工作流

  1. 知识入库 (Indexing)

    • 将 PDF、网页、代码、表格等文档解析为稳定文本。
    • 按语义边界分块,保留标题、层级、来源和权限元数据。
    • 将文本转化为向量或稀疏表示,写入向量库、搜索引擎或混合索引。
  2. 检索召回 (Retrieval)

    • 对用户问题做改写、扩展、路由或拆解。
    • 同时使用 BM25、Dense Vector、Sparse Vector、Graph 或业务 API 召回候选证据。
  3. 增强生成 (Generation)

    • 对候选证据重排、去重、过滤权限和压缩上下文。
    • 将证据、引用、回答格式和拒答规则一起交给模型。
    • 输出答案时给出来源,方便用户和系统做追溯。

每一层解决什么问题

层级关键问题常见技术失败时表现
文档解析内容是否被正确提取OCR、PDF parser、HTML cleaner、table extraction表格丢失、段落错乱、标题缺失
Chunking知识是否可被召回semantic chunk、parent-child、hierarchical index召回片段太碎或太长
Retrieval相关证据是否进入候选集BM25、embedding、hybrid search、query rewriting答非所问、漏召回
Rerank最有用证据是否排在前面cross-encoder、LLM rerank、RRF有证据但被挤出上下文
Context模型是否能使用证据compression、citation packing、dedupe上下文噪声过大
Generation答案是否可信grounded prompt、引用、拒答幻觉、无引用、过度自信
Evaluation系统是否可迭代golden set、Recall@K、faithfulness、bad case trace只能靠感觉调参

工程扩展:不仅仅是向量检索

基础向量检索只能解决一部分问题。企业级 RAG 通常还需要查询改写、混合检索、重排、权限过滤、引用校验和评测闭环。

工程判断

生产级 RAG 的核心不是“接一个向量库”,而是把知识处理、检索排序、权限安全、答案引用和评测回归串成一条可观测链路。

上线前检查清单

准备一组覆盖真实业务问题的 golden set,不只测 demo 问题。
记录每次回答的 query、rewrite、chunk、score、rerank、prompt、tokens 和 latency。
为权限、敏感信息、Prompt Injection 和跨租户访问补安全测试。
把 bad case 固化为回归集,避免每次调参只优化眼前问题。
设定无法回答时的拒答策略,而不是让模型强行编答案。

继续阅读

如果你已经理解这条基础链路,可以继续进入完整专题:

讨论

继续讨论这篇笔记

有问题、补充案例或不同观点,可以通过 GitHub Discussions 继续交流。

On this page