Section

RAG

检索增强生成 · 从 V1 到企业级

20 篇文档10 个交互笔记

RAG 实战课程

售前转 AI 应用工程师 · 面向学习、实战和后续知识库建设的 RAG 学习仓库


先看什么

现在 rag/docs 已经不是“几篇并列文档”,而是一套带统一入口的知识体系。

推荐从这里开始:

  • 统一入口:rag/docs/index.html
  • 系统学习:rag/docs/00_课程路线图.html
  • 快速回查:rag/docs/ai-knowledge-hub.html
  • 做项目:rag/docs/03_工程方法论手册.html
  • 讲解 / 面试:rag/docs/rag-5d.html
  • 看全貌:rag/docs/rag-knowledge-map.html

如果你是第一次学,不要从“快速回查”开始;先打开 index.html,再按任务分流。


当前结构

docs/:统一入口 + 知识页面

文件角色适合什么时候打开
index.html统一入口,只负责任务分流第一次进入 docs 时先打开
00_课程路线图.html学习顺序,只负责“先学什么、后学什么”系统学习时打开
ai-knowledge-hub.html快速回查,只负责术语、参数、问题定位、知识对象已经知道要查什么时打开
01_概念手册_向量与检索.html概念直觉,只负责 embedding / 向量 / 余弦等底层理解跑 V1 代码前打开
02_代码讲解_V1V2.html代码数据流,只负责解释 V1 / V2 怎么工作准备运行或复习代码时打开
03_工程方法论手册.html项目落地,只负责评估、badcase、实验、边界开始做真实项目时打开
rag-knowledge-map.html系统全貌,只负责模块关系和结构感复习整体链路或做方案讲解时打开
rag-5d.html横向辨析,只负责对比、场景判断、讲解表达、面试复习要讲清楚 RAG 或做面试准备时打开
knowledge-updates.html更新日志,只负责记录知识库结构和内容变更想看最近做了什么调整时打开

code/:可运行代码

文件内容依赖
00_配置提供商_先改这个.py切换模型提供商,配置 API Keyopenai, numpy
01_v1_最小RAG循环.pyembedding + 余弦检索 + Prompt 注入 + 有无 RAG 对比依赖 00
02_v2_文档分块策略.py3 种分块策略对比实验依赖 00
03_v3.5_黄金数据集.py7 条手标 Query + Recall@3 + MRR,建立检索基线,输出 baseline.json依赖 00
04_v4_embedding选型.py对比同一 Provider 的不同 Embedding 模型,逐条分析差异,输出 v4_embedding_result.json依赖 00, baseline.json
05_v5_混合检索.pyBM25(纯 Python)+ 向量 + RRF 融合,演示互补性,输出 v5_hybrid_result.json依赖 00, baseline.json, chromadb
06_v6_reranking.pyCross-encoder 两阶段精排(bge-reranker-base),召回 Top-10 → 精排 → Top-3,输出 v6_reranking_result.json依赖 00, baseline.json, sentence-transformers
07_v7_query变换.pyMulti-Query + HyDE + Step-back 三种 Query 变换,输出 v7_query_transform_result.json依赖 00, baseline.json
08_v8_评估框架.pyRAGAS 风格 4 维评估(Context Recall/Precision + Faithfulness + Answer Relevancy),含 RAGAS 集成代码,输出 v8_eval_result.json依赖 00, baseline.json
09_v9_agentic_rag.pySelf-RAG + Agentic Retrieval + Multi-hop,基于 Tool Calling 实现,输出 v9_agentic_result.json依赖 00
10_v10_enterprise.py语义缓存 + 请求追踪 + 多租户 Namespace + 增量索引更新,输出 rag_traces.jsonl依赖 00, chromadb

推荐路径

1. 系统学习

docs/index.html
  ↓
docs/00_课程路线图.html
  ↓
docs/01_概念手册_向量与检索.html
  ↓
docs/02_代码讲解_V1V2.html#v1
  ↓
code/01_v1_最小RAG循环.py
  ↓
docs/02_代码讲解_V1V2.html#v2
  ↓
code/02_v2_文档分块策略.py
  ↓
docs/03_工程方法论手册.html
  ↓
code/03_v3.5_黄金数据集.py   # → baseline.json
  ↓
code/04_v4_embedding选型.py   # → v4_embedding_result.json
  ↓
code/05_v5_混合检索.py        # → v5_hybrid_result.json
  ↓
code/06_v6_reranking.py       # → v6_reranking_result.json    ★ 需要 sentence-transformers
  ↓
code/07_v7_query变换.py       # → v7_query_transform_result.json
  ↓
code/08_v8_评估框架.py        # → v8_eval_result.json
  ↓
code/09_v9_agentic_rag.py     # → v9_agentic_result.json
  ↓
code/10_v10_enterprise.py     # → rag_traces.jsonl

2. 做项目

docs/index.html
  ↓
docs/03_工程方法论手册.html
  ↓
docs/rag-knowledge-map.html
  ↓
docs/rag-5d.html
  ↓
docs/ai-knowledge-hub.html

3. 快速回查

docs/ai-knowledge-hub.html
  ↓
按主题 / 按问题 / 标准知识对象
  ↓
跳到概念页 / 代码页 / 工程页 / 5D / 知识地图

快速开始

# 1. 进入代码目录
cd rag/code

# 2. 创建虚拟环境(需要 Python 3.12,uv 管理)
uv venv --python 3.12
source .venv/bin/activate          # macOS / Linux
# .venv\Scripts\activate           # Windows

# 3. 安装依赖
uv pip install openai numpy python-dotenv chromadb

# v6 额外依赖(首次运行会下载 bge-reranker-base 模型 ~270MB)
uv pip install sentence-transformers

# 4. 配置 API Key
cp .env.example .env
# 编辑 .env,填入 API Key 并设置 PROVIDER

# 5. 验证连通性
python 00_配置提供商_先改这个.py

# 6. 按顺序运行
python 01_v1_最小RAG循环.py
python 02_v2_文档分块策略.py
python 03_v3.5_黄金数据集.py     # 生成 baseline.json
python 04_v4_embedding选型.py     # 生成 v4_embedding_result.json
python 05_v5_混合检索.py          # 生成 v5_hybrid_result.json
python 06_v6_reranking.py         # 生成 v6_reranking_result.json(首次下载模型 ~270MB)
python 07_v7_query变换.py         # 生成 v7_query_transform_result.json
python 08_v8_评估框架.py          # 生成 v8_eval_result.json
python 09_v9_agentic_rag.py       # 生成 v9_agentic_result.json
python 10_v10_enterprise.py       # 生成 rag_traces.jsonl

Python 版本说明:需要 Python 3.12。chromadb 依赖的 onnxruntime 暂不支持 Python 3.13,请勿使用系统默认的 Python 3.13。

如果你只是看文档,不需要先跑代码;如果你只是查术语,也不需要先通读路线图。


知识库化约定

这套 docs 现在按“知识库”而不是“散文档”维护,约定如下:

  • index.html 是唯一统一入口,其他页面不再承担首页职责。
  • 核心页面都说明“这页负责什么 / 不负责什么 / 下一步去哪”。
  • ai-knowledge-hub.html 负责标准知识对象、术语、参数速查和问题索引。
  • 高频知识点会逐步收敛成统一对象结构,方便后续做站内检索和 RAG 抽取。
  • knowledge-updates.html 用于记录结构变化和重要内容更新。

国内模型选型

提供商申请地址环境变量推荐场景
硅基流动 ★siliconflow.cnSILICONFLOW_API_KEY学习首选,一个 key 搞定 embedding + chat
智谱 AIopen.bigmodel.cnZHIPU_API_KEYGLM-4-Flash 免费
通义千问dashscope.aliyuncs.comDASHSCOPE_API_KEY企业级稳定
OpenAIplatform.openai.comOPENAI_API_KEY国际用户

课程和文档会持续更新。下一步会继续把更多知识点收敛成标准知识对象,并补机器可消费的知识索引。

Mock Interview · 模拟面试

8

Research · 论文参考

1

其他

理解 RAG · 5集入门系列
从 LLM 的根本缺陷出发,5集走完 RAG 核心路径:原理→架构→检索优化→评估→生产化。
content/03-rag/01-理解RAG.md
RAG 概念手册 · 从零理解向量与检索
专门解释"文本为什么能表示成向量""维度到底是什么""为什么语义检索常用余弦相似度",数学原理和概念直觉推导。
content/03-rag/02-概念手册-向量与检索.md
RAG 实战 · V1 & V2 代码讲解
把"文本怎么流到向量、chunk 怎么影响召回、Prompt 为什么这样组装"拆成可跟踪的数据流,逐步讲解 V1 最小 RAG 循环和 V2 文档分块策略。
content/03-rag/03-代码讲解-V1V2.md
RAG 工程方法论手册
回答"为什么 Demo 跑通了系统还是不好用",重点是评估、badcase、实验设计、边界判断和项目落地顺序。
content/03-rag/04-工程方法论手册.md
RAG 文档索引与术语速查
RAG 快速回查入口,负责术语回查、参数确认、问题定位和从概念反查代码,不承担顺序教学。
content/03-rag/ai-knowledge-hub.md
ChromaDB 数据查看指南
content/03-rag/chromadb-inspect.md
面试回答评估方案
content/03-rag/evaluation-strategy.md
RAG 知识地图
用流程视图和知识冰山解释 RAG 的系统全貌,适合在学习中途校准结构感,也适合做方案讲解时快速搭起全链路心智模型。
content/03-rag/rag-knowledge-map.md
RAG 开源生态指南
RAG 管线中的开源工具、引擎和平台分层对比:PaddleOCR → MinerU → RAGFlow,含选型逻辑和架构定位。
content/03-rag/rag-opensource-ecosystem.md
模拟面试官开发复盘
content/03-rag/RETROSPECTIVE.md

交互笔记(HTML)

10

浏览器直接打开,含动画、可交互组件,部分主题用动画讲解比文字更直观。