Skip to content

第 1 课:把 RAG 拆成一条可调试的请求链

RAG 课程 · 01 |目标:说清 RAG 的五个关键阶段|用时:15 分钟

今天的目标不是记框架 API,而是建立一张能帮助你定位问题的系统地图。

先建立边界

RAG 不是“让模型记住更多内容”。它是在回答时临时检索外部证据,再把证据交给生成模型使用。

一条请求经过哪里

在线请求链可以先抽象成五步:

  1. **问题理解:**接收问题,必要时改写查询。
  2. **向量化:**把问题变成 embedding。
  3. **召回证据:**从索引找到候选片段。
  4. **整理上下文:**过滤、重排、拼装上下文。
  5. **生成答案:**基于证据回答并给出引用。

同时还有一条离线链路:

text
文档解析 → chunking → embedding → 写入向量数据库

在线链路能否找到答案,很大程度上由这条离线链路决定。

向量数据库负责哪一段

把向量数据库暂时看作三个能力的组合:

  1. **存向量:**保存文本片段对应的高维数值表示。
  2. **找相似:**根据距离或相似度,返回最接近问题的 top-k 候选。
  3. **带条件筛选:**按租户、权限、时间、文档类型等 metadata 缩小候选范围。

它不负责理解业务问题,也不负责保证最终答案正确。向量库返回“可能相关的证据”,之后的重排、上下文组装、生成和评测仍是应用层责任。

text
query
  → embedding(query)
  → vector_search(top_k=20)
  → metadata_filter + rerank
  → prompt(context)
  → answer + citations

先用三个问题拆故障

  • **证据根本没回来?**优先查解析、切分、embedding、距离度量、索引和过滤条件。
  • **证据回来了但不在前面?**查 top-k、召回策略和 reranker。
  • **证据相关但答案仍然错?**查上下文拼装、提示词、模型和引用约束。

这三个问题把“模型很笨”的模糊抱怨,变成了可以采集日志和指标的工程排查。

自测

练习 1:向量数据库最核心的职责是哪一项?

A. 生成回答

B. 相似检索

C. 清洗文档

D. 评估答案

答案:B。向量数据库负责存储向量、执行相似搜索,并可结合 metadata 过滤;它不直接生成最终答案。

练习 2:用户问题的证据完全没被召回,第一步应关注什么?

A. 看召回率

B. 换提示词

C. 加温度值

D. 删元数据

答案:A。先确认召回是否找到正确证据,再决定是否需要调整生成模型或提示词。

把知识变成自己的模型

请不要直接复制上面的链路。用你自己的话写出一条 5 到 8 步的 RAG 请求链,并标注“向量数据库”出现在哪一步。然后回答:如果最终答案错了,你会先检查哪三个观测点?

把答案发给我,我会根据你的解释记录真正已经掌握的内容,再决定是否进入下一课。

主读材料

Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks。先只看摘要、系统图和方法概述;遇到术语可以直接问我,不需要一次读完全文。

下一步

有任何不清楚的地方,直接向老师提问。