RAG 与向量数据库完整教程
欢迎来到垦荒学园的 RAG(Retrieval-Augmented Generation,检索增强生成) 教程。本课讲的是与框架无关的原理:怎么切块、怎么嵌入、怎么存进向量库、怎么检索 / 重排、怎么评估「答得对不对」。向量数据库以 Chroma、pgvector、Qdrant 三条可跑通的路径为主。
LangChain、LlamaIndex、Dify 都实现了同一条流水线,但那是产品接法。原则和存储层归本课;框架课只负责它们自己的 API。
教程目录
原理篇
- RAG 简介 — 为什么要检索、和微调 / 长上下文的分工
- 流水线 — documents → chunk → embed → vector store → retrieve → rerank → LLM
- 切块 — 块大小、重叠、按标题切、父子块
- Embeddings — OpenAI
text-embedding-3-small或本地 Ollama / BGE(中文)
向量库篇
- Chroma — 本地目录、
PersistentClient、add/query - pgvector — PostgreSQL 扩展、余弦查询、接到已有库
- Qdrant — Docker、HTTP 6333、
upsert/ 检索与过滤
质量篇
- 检索与重排 — top-k、混合检索、可选 rerank、元数据过滤
- 评估 — hit@k、忠实度、「只根据上下文回答」
- 实战案例 — Markdown FAQ、已有 Postgres、Qdrant 过滤 / 混合
- 资源与延伸阅读 — 官方文档与本站相关课
学习路径
建议顺序:先 Chroma 把流水线跑绿,再决定要不要上 Postgres 或独立向量服务。不要一上来同时装三套库。
本课与其它课程的分工
前置知识
- Python 3.10+(函数、列表、虚拟环境)
- 了解一次 Chat Completions 调用长什么样即可,不必先会 Agent 框架
- 至少一条嵌入路径:OpenAI API Key,或本机 Ollama(CPU 可跑,不必 GPU)
- 学 pgvector 需要一台 PostgreSQL;学 Qdrant 需要 Docker
- Windows 用 PowerShell;本教程同时给出 bash
不要求你会写 Transformer,也不要求有 GPU。
学习建议
- 用网上搜不到的虚构条款当语料,否则分不清模型是在检索还是在背训练数据
- 索引和查询必须用同一个嵌入模型;换模型等于整库重嵌
- 先看检索命中(hit@k),再调生成提示词
- 框架课(LangChain / LlamaIndex / Dify)放在本课流水线之后,避免只记住类名、不懂块去哪了