RAG 检索增强RAG检索流程速答 · 约 6 分钟更新 2026-09-16

RAG 的完整流程是什么?从文档到答案要过几道工序?

一句话结论

两段六步:离线把文档解析、清洗、切分、向量化后入库;在线把查询改写、召回、重排后拼进提示词让模型生成带引用的答案。

先这样答

我按两条线讲:离线建库和在线问答。

离线这条线的输入是原始文档,输出是可检索的向量库。第一步解析,PDF、Word、网页各有各的麻烦,扫描件还要过 OCR,表格和图片的解析最容易被做砸。第二步清洗,去掉页眉页脚、水印、乱码,这些脏东西进了向量库,检索时就是噪音。第三步切分,把长文档切成适合检索的块,这一步的质量直接决定后面检索的上限。第四步向量化,用 Embedding 模型把每个块变成向量,连同原文和元数据一起写进向量库,元数据里至少要有来源、标题、更新时间。

在线这条线从用户提问开始。第一步查询理解,判断该不该检索、要不要改写——用户的问题可能口语化、有指代,或者一次问了三件事要拆开查。第二步召回,从向量库里拉出候选段落,讲究一点的会向量检索加关键词检索双路一起拉。第三步重排,用更重的模型把候选段落按相关性重新排一次,只留最靠前的几段。第四步生成,把重排后的段落连同问题拼成提示词交给模型,要求它只依据资料回答并标注引用。

面试时讲完流程,最好主动补一句:这两条线里最容易出问题的是切分和查询改写,我做项目的时候主要精力也花在这两处。

面试官会怎么追问

  • 为什么检索完还要重排? 向量召回用的是双塔结构的轻量模型,求快;重排用交叉编码器逐对精算,求准。先用便宜的拉全量,再用贵的排顺序。
  • 多轮对话里流程有什么不一样? 要多一步指代消解:「它的价格呢」得先改写成「iPhone 16 的价格是多少」再去检索,否则查不到东西。
  • 结构化数据也走 RAG 吗? 表格类数据通常走 Text-to-SQL 更直接,混合场景才需要两者结合,硬把表格切成文本块检索效果一般不好。

回答的坑

  • 只讲「向量检索然后生成」两步。流程讲不全,等于告诉面试官你没真正搭过。
  • 不提元数据。来源和更新时间丢了,答案就没法溯源,企业场景这是硬伤。
—— 本题完 ——