这张图展示了从基础检索到生产级AI系统的10种RAG项目方案,是对上文中基础RAG流水线难以应对的现实场景的解决方案梳理。这些方案涵盖了不同的优化方向,包括支持混合搜索以应对语义搜索遗漏关键词的问题,通过元数据过滤满足用户对文档特定日期、类别的需求,借助重排序优化检索结果,还包含上下文分块、结合结构化SQL与非结构化向量检索、利用纠错机制迭代答案、引入自我反思、多模态检索、结合知识图谱或代理工具等多种实现路径,每一种方案都针对RAG系统在实际应用中可能遇到的特定问题给出了对应的解决思路。

如果你正在学习 RAG,不要再去构建另一个基础的 “与你的 PDF 聊天” 应用了。

一个基础的 RAG 流水线对理解基本原理很有用:

Documents → Chunking → Embeddings → Vector Search → LLM

但那仅仅是开始。现实世界中的 RAG 系统很快会遇到更难的问题:

• 如果语义搜索漏掉了确切的关键词怎么办?
• 如果用户想要特定日期或类别的文档怎么办?
• 如果检索到的顶部块实际上不是最有用的那些怎么办?
• 如果答案既需要结构化数据库数据又需要非结构化文档怎么办?
• 如果检索本身失败了怎么办?
• 当你的系统需要处理表格、图像或多个知识源时会发生什么?

这就是事情变得有趣的地方。

这里有 10 个项目,如果你想从基础 RAG 迈向生产级 AI 系统,我推荐你构建这些项目。

1. Hybrid Search RAG(混合搜索 RAG)

问题:

向量搜索擅长理解语义相似性。但有时确切的词语很重要。搜索特定错误代码、产品 ID、API 名称或技术术语时,关键词搜索可能比纯语义检索效果更好。

你将构建的内容

将 BM25 关键词搜索 与 稠密向量检索 结合起来。

系统使用这两种方法检索文档,并合并结果以产生更好的候选集。

例如:

User Query
    |
    +----> BM25 Search --------+
    |                          |
    +----> Vector Search ------+----> Combined Results
                                      |
                                      v
                                     LLM

技术栈

Python · BM25 · Elasticsearch/FAISS · Sentence Transformers

你将学到什么

词汇检索和语义检索如何互补,以及为什么生产搜索系统通常需要不止一种检索策略。

2. Metadata-Filtered RAG(元数据过滤 RAG)

问题

仅靠语义相似性并不总是足够的。

假设用户问:

“2026 年认证服务发生了什么变化?”

你不想搜索知识库中的每个文档。

你希望首先将检索限制到相关的元数据。

你将构建的内容

将语义搜索与以下过滤器结合:

  • 日期
  • 类别
  • 作者
  • 部门
  • 位置
  • 文档类型
User Query
    |
    v
Metadata Filter
    |
    v
Vector Search
    |
    v
Relevant Context
    |
    v
LLM

技术栈

Python · PostgreSQL · pgvector · Pydantic · OpenAI

你将学到什么

结构化过滤和语义检索如何协同工作。

3. Reranking RAG(重排序 RAG)

问题

你的向量数据库可能返回 20 个看似相关的块。但相关性不是二元的。有些块比其他块好得多。

你将构建的内容

首先检索一个更大的候选集,然后使用重排序器对这些候选进行评分,只将最强结果发送给 LLM。

Query
  |
  v
Retrieve 50 chunks
  |
  v
Reranker
  |
  v
Top 5 chunks
  |
  v
LLM

技术栈

Python · FAISS/pgvector · CrossEncoder/Cohere Rerank · OpenAI

你将学到什么

检索 和 排序 之间的区别,以及为什么提高检索质量并不总是关于更改你的嵌入模型。

4. Contextual Chunking RAG(上下文分块 RAG)

问题

传统的分块会破坏上下文。想象一个文档包含:

认证服务
所有者:平台团队
区域:印度
版本:3.2

而你检索到仅包含以下内容的块:

"版本:3.2"

嵌入几乎没有上下文可供使用。

你将构建的内容

在嵌入之前,将相关的文档级上下文添加到各个块中。

Document
    |
    v
Context Extraction
    |
    v
Context + Chunk
    |
    v
Embedding
    |
    v
Vector Database

技术栈

Python · Docling · OpenAI/Claude · pgvector

你将学到什么

为什么分块是检索问题,而非简单的文本处理问题。

5. SQL + Vector RAG(SQL + 向量 RAG)

问题

并非每个问题都适合放入向量数据库。

考虑:

"上个月有多少客户升级到了专业版,这些客户最常见的投诉是什么?"

第一部分需要结构化数据。

广告媒流(小程序)-AI生图

第二部分可能需要对支持对话进行语义搜索。

你将构建的内容

结合 SQL 查询与向量检索。

                  User Query
                       |
              +--------+--------+
              |                 |
              v                 v
           SQL Query       Vector Search
              |                 |
              +--------+--------+
                       |
                       v
                    Context
                       |
                       v
                      LLM

技术栈

Python · PostgreSQL · pgvector · SQLAlchemy · LangGraph

你将学到什么

如何决定一个问题应通过结构化查询、语义检索或两者结合来回答。

6. Knowledge Graph + Vector RAG(知识图谱 + 向量 RAG)

问题所在

向量搜索擅长找到相似信息,但相似性不等于关系。

考虑:

"如果支付服务宕机,哪些服务会受到影响?"

答案可能依赖于服务之间的显式关系。

你将构建的内容

将向量搜索与知识图谱结合。

          Vector Search
                  |
                  v
Question ----> Relevant Entities
                  |
                  v
             Knowledge Graph
                  |
                  v
             Relationships
                  |
                  v
                  LLM

技术栈

Python · Neo4j · pgvector · OpenAI · LangGraph

你将学到什么

何时语义相似性足够,以及实体间的显式关系何时提供额外价值。

7. Corrective RAG(修正 RAG)

问题

大多数基础 RAG 管道假设检索有效。它们检索一些文档,并立即将其传递给 LLM。但如果检索到的上下文不相关呢?生产系统需要识别检索失败。

你将构建的内容

在生成最终答案之前评估检索到的上下文。

如果结果不佳,系统可以:

  • 重写查询
  • 重新检索
  • 搜索另一个来源
  • 完善上下文
  • 或拒绝回答
Query
  |
  v
Retrieve
  |
  v
Evaluate Context
  |
  +---- Good ----> Generate Answer
  |
  +---- Poor ----> Rewrite / Retry

技术栈

Python · LangGraph · OpenAI · pgvector · Tavily

你将学到什么

如何构建围绕检索的反馈循环,而不是将检索视为保证操作。

8. Self-RAG(自反思 RAG)

问题

LLM 是否应该对每个问题都进行检索?可能不需要。

如果有人问:

"什么是 Python?"

可能没有理由去搜索你的知识库。

但如果他们问:

“我们公司最新的应急响应政策是什么?”

那么检索就变得至关重要。

你将构建的内容

一个能够决定何时需要检索、评估检索到的证据,并验证其答案是否得到充分支持的系统。

       User Query
                     |
                     v
              Need Retrieval?
               /          \
             No            Yes
             |              |
             v              v
          Generate       Retrieve
                           |
                           v
                        Evaluate Evidence
                                |
                                v
                        Generate Answer

技术栈

Python · LangGraph · OpenAI · pgvector

你将学到什么

检索如何成为推理过程中的动态部分,而非强制性的第一步。

9. Multimodal RAG(多模态 RAG)

问题

现实世界中的文档不仅仅是文本。

它们包含:

  • 表格
  • 图片
  • 图表
  • 截图
  • 示意图
  • 扫描页面

将所有内容扁平化为纯文本可能会丢失宝贵的信息。

你将构建的内容

一个能够跨多种模态进行检索和推理的 RAG 系统。

Documents
   |
   +---- Text
   +---- Tables
   +---- Images
   +---- Pages
          |
          v
      Retrieval
          |
          v
   Multimodal LLM
          |
          v
       Answer

技术栈

Python · Docling · 多模态LLM · 向量数据库 · OpenAI

你将学到什么

当检索流程必须保留的不只是文本时,文档理解将如何变化。

10. Agentic RAG(智能体 RAG)

问题所在

有时一次检索操作是不够的。

一个问题可能需要来自多个来源的信息。

例如:

“将我们当前的架构与两年前使用的架构进行比较,并找出发生变化的服务。”

这可能需要搜索文档、查询结构化数据,并跟踪多个实体之间的关系。

你将构建的内容

一个能够决定以下内容的智能体:

  • 查询哪个来源
  • 使用哪个工具
  • 是否需要另一次检索步骤
  • 何时拥有足够的信息
  • 如何组合结果
                User Query
                      |
                      v
                    Agent
                 /    |    \
                /     |     \
           Vector    SQL    Search
             |       |        |
             +-------+--------+
                     |
                     v
                  Evidence
                     |
                     v
                   Agent
                     |
                     v
                   Answer

技术栈

Python · LangGraph · OpenAI · 向量数据库 · 搜索API

你将学到什么

RAG 如何从固定流程演变为能够动态选择其检索策略的系统。

The Bigger Picture(更广阔的图景)

这些并非 10 个完全独立的架构。这实际上是最重要的理解点。

你可以将它们组合使用。

生产环境的 RAG 系统最终可能看起来像这样:

                         User Query
                             |
                             v
                      Query Processing
                             |
                             v
                    Metadata Filtering
                             |
                  +----------+----------+
                  |                     |
                  v                     v
             Keyword Search       Vector Search
                  |                     |
                  +----------+----------+
                             |
                             v
                         Reranking
                             |
                             v
                     Contextual Chunks
                             |
                             v
                    Context Evaluation
                             |
                       +-----+-----+
                       |           |
                     Good         Poor
                       |           |
                       v           v
                      LLM     Query Rewrite
                                   |
                                   v
                                Retrieve

根据具体问题,你可能会添加 SQL、知识图谱、多模态检索、外部搜索或智能体编排。

你并不会从:

“我构建了一个 RAG 聊天机器人。”

到

“我构建了生产级 RAG。”

只需简单地换一个向量数据库。你通过学会如何让检索变得:来达到这个水平。

• 准确。
• 上下文相关。
• 过滤。
• 排序。
• 可验证。
• 自适应。

如果你认真对待构建 AI 应用,这些是我会放在我的 RAG 学习路线图中的项目类型。