很多人第一次接触 RAG,会先记住一句话:
先检索,再生成。
这句话当然没错,但如果你真的开始做一个知识库问答系统,很快就会发现:
真正把系统跑起来,远远不只是“检索一下,再调个模型”这么简单。
因为用户看到的只是一个输入框和一个答案,系统背后其实已经走过了一整条链路:
- 文档先上传
- 再解析文本
- 再切块
- 再做 Embedding
- 再存入向量库
- 用户提问时再召回相关片段
- 再拼接上下文
- 最后模型才生成答案
也就是说,RAG 不是一个单点能力,而是一条完整的数据处理和问答链路。
你只要其中任何一步没做好,最后答案质量就可能明显下降。
所以这篇文章,我们就不再停留在“RAG 是什么”的概念层面,而是直接用工程视角,把一个 RAG 系统从文档上传到答案生成的完整流程一次拆开讲透。
先建立一个整体认知:RAG 系统到底在做什么?
如果你站在业务系统角度看,一个典型的 RAG 知识库问答系统,其实做的是两件事:
第一件事:提前把知识整理成“可检索”的形式
也就是把原始文档处理成后续可以高效召回的知识块。
第二件事:在用户提问时,从这些知识块里找到最相关的内容,再让模型基于这些内容生成答案
也就是把“企业文档”真正接入“模型回答”。