Skip to content

什么是 Spring AI 提出的模块化 RAG 架构?预检索、检索和后检索阶段各自负责什么? ​

  • 标签:后端、编程导航

🏛 业务架构师 ​

模块化 RAG 是 Spring AI 提倡的架构思想:把 RAG 拆成预检索、检索、后检索三段流水线,每段职责单一、可独立替换与组合——从"一根烟囱"变成"一条可编排的产线"。

三段职责:

  • 预检索(Pre-Retrieval):优化"问题"——查询重写(口语转规范、指代补全)、多查询扩展、上下文相关性判断(不相关的跳过检索)、过滤条件构造。解决"问题配不上文档";
  • 检索(Retrieval):执行召回——向量检索、关键词检索、混合检索,元数据过滤(权限/类目/时效)在此强制执行。解决"怎么搜得全又准";
  • 后检索(Post-Retrieval):加工"结果"——重排序(Rerank 模型精排 top50→top5)、去重、压缩(长片段摘要)、来源标注。解决"塞给模型的上下文质量"。

业务架构价值(我为什么推崇这个分层):

  1. 可归因的优化:效果差时能定位到段——召回都没有是预检索/检索问题,召回了但答错是后检索问题——没有分段的 RAG 调优全是玄学;
  2. 可评测的每一段:每段定义指标(重写的完整性、召回率、重排的 NDCG),有度量才有优化;
  3. 组合的灵活性:不同场景按需组装(配合我的动态 Advisor 工厂)——客服场景全链路,轻量场景只留重写+检索。

一句话:模块化 RAG 把"调 RAG"从炼丹变成工程化的流水线治理——段间解耦、段内可替换、整链可评测,这也是企业级 AI 与 demo 的分水岭。

🏗 系统架构师 ​

模块化 RAG 是 Spring AI 借鉴学术届(RAG Survey)提出的架构思想:把 RAG 拆成预检索(Pre-retrieval)、检索(Retrieval)、后检索(Post-retrieval)三个正交阶段,每阶段可独立替换与组合——从"固定管道"进化为"可编排的模块体系"。

三阶段职责:

  • 预检索(查询侧优化):查询重写(指代消解、术语归一)、多查询扩展、查询分解、HyDE、路由(判断要不要检索、检索哪个库)——目标:让查询更好地表达信息需求;
  • 检索(执行层):向量检索(ANN)、关键词检索(BM25)、混合检索、元数据过滤、多库联邦检索——目标:高召回高精度地拿到候选集;
  • 后检索(结果侧优化):重排序(交叉编码器 Rerank)、去重合并、相关性过滤、chunk 压缩、上下文组装(来源引用)——目标:把候选集提炼成高质量上下文。

架构价值(我的理解):

  1. 问题定位清晰:RAG 效果差先分层归因——召回没有(预检索/索引问题)还是排序不对(后检索问题),各层独立评测;
  2. 组合自由:每阶段是 Advisor/组件,按知识库特征编排(规章库重精确 → 重排;资讯库重召回 → 多查询);
  3. 演进友好:新优化(如 Rerank 模型升级)替换单模块,不动全链路。

这与分层架构(接入/逻辑/数据)思想同源:复杂系统先正交分解,再谈逐层优化——我的动态 RAG Advisor 工厂正是按这三阶段组织配置的。

💻 全栈开发专家 ​

模块化 RAG 是 Spring AI 借鉴学术界( Modular RAG 论文)确立的架构思想:把 RAG 拆成三个阶段的可插拔流水线,每个阶段独立配置、组合使用,而不是一个黑盒"检索 + 塞 prompt"。

预检索(Pre-Retrieval)—— 把查询变好:

  • 查询重写(指代消解、口语规范化)
  • 多查询扩展(Multi-Query)、HyDE(假设文档检索)
  • 查询路由(判断该查哪个知识库、还是不查)
  • 我项目里:QueryRewriteAdvisor + MultiQueryAdvisor + ContextGateAdvisor 全在这层。

检索(Retrieval)—— 把候选找全:

  • 向量检索、关键词检索(BM25)、混合检索 + 融合(RRF)
  • 元数据过滤(权限/分类)、topK/阈值调参
  • 对应 Spring AI:VectorStore.similaritySearch + filterExpression,可挂多个 store。

后检索(Post-Retrieval)—— 把上下文用好:

  • 重排 Rerank(cross-encoder 精排 top50 → top5)
  • 上下文压缩(去掉 chunk 里无关句子)、去重
  • 引用标注(回答时标注来源文档)、prompt 组装(QuestionAnswerAdvisor 的模板)

我的理解(面试升华):模块化 RAG 的工程价值是可组合、可观测、可评估——每一跳都是独立 Advisor,能单独 A/B 和监控;RAG 效果优化不再是玄学调 prompt,而是按阶段定位问题(召回率低查预检索/检索,准确率低查后检索)逐段优化。