第 1 课:把 RAG 拆成一条可调试的请求链
RAG 课程 · 01 |目标:说清 RAG 的五个关键阶段|用时:15 分钟
今天的目标不是记框架 API,而是建立一张能帮助你定位问题的系统地图。
先建立边界
RAG 不是“让模型记住更多内容”。它是在回答时临时检索外部证据,再把证据交给生成模型使用。
一条请求经过哪里
在线请求链可以先抽象成五步:
- **问题理解:**接收问题,必要时改写查询。
- **向量化:**把问题变成 embedding。
- **召回证据:**从索引找到候选片段。
- **整理上下文:**过滤、重排、拼装上下文。
- **生成答案:**基于证据回答并给出引用。
同时还有一条离线链路:
text
文档解析 → chunking → embedding → 写入向量数据库在线链路能否找到答案,很大程度上由这条离线链路决定。
向量数据库负责哪一段
把向量数据库暂时看作三个能力的组合:
- **存向量:**保存文本片段对应的高维数值表示。
- **找相似:**根据距离或相似度,返回最接近问题的 top-k 候选。
- **带条件筛选:**按租户、权限、时间、文档类型等 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。先只看摘要、系统图和方法概述;遇到术语可以直接问我,不需要一次读完全文。
下一步
有任何不清楚的地方,直接向老师提问。