从零到精通 RAG 全流程开发 — 学习教程 · 编程实战 · 面试准备
RagGuide 是一个面向全体开发者的 RAG 学习开源项目,从零开始到精通 RAG 全流程开发。
RagGuide/
├── docs/ # 📚 教程(10 章,每章含教程+代码)
│ ├── 01-RAG基础/ # 基础RAG流程
│ ├── 02-数据加载/ # 多格式文档加载
│ ├── 03-嵌入模型/ # OpenAI/HuggingFace 对比
│ ├── 04-向量数据库/ # Chroma/Pinecone/Qdrant
│ ├── 05-检索策略/ # 混合检索+重排序
│ ├── 06-生成优化/ # Prompt工程+结构化输出
│ ├── 07-高级RAG/ # Self-RAG/GraphRAG
│ ├── 08-LangGraph/ # 可迭代RAG工作流
│ ├── 09-生产级RAG/ # Docker部署+监控
│ └── 10-实战案例/ # 知识库/客服/法律/医疗
│
├── practice/ # 🧪 前沿 RAG 框架实战
│ ├── lightrag/ # LightRAG(轻量级 Graph RAG)
│ ├── graphrag/ # GraphRAG(微软社区检测)
│ └── ... # 持续更新
│
├── interview/ # 🎯 面试准备
│ ├── 01-RAG基础面试题.md
│ ├── 02-技术深度面试题.md
│ ├── 03-系统设计面试题.md
│ ├── 04-手撕代码面试题.md
│ ├── 05-RAG与微调对比.md
│ └── 06-高频面试题汇总.md
│
├── rag_demo.py # ⭐ 快速入口
├── pyproject.toml # 依赖配置
└── README.md # 本文档
每章包含 教程文档 + 配套代码,理论与实践结合:
| 章节 | 内容 | 代码 Demo |
|---|---|---|
| 01-RAG基础 | RAG 概念、架构设计、完整链路 | basic_rag_pipeline.py |
| 02-数据加载 | PDF/Word/HTML/CSV 加载、文本分块 | document_loader_demo.py |
| 03-嵌入模型 | OpenAI/HuggingFace/LM Studio对比 | embedding_comparison.py |
| 04-向量数据库 | Chroma/Pinecone/Qdrant选型、CRUD操作 | vector_db_demo.py |
| 05-检索策略 | 稠密+稀疏混合检索、重排序调优 | hybrid_search_demo.py |
| 06-生成优化 | Prompt工程、结构化输出、上下文压缩 | generation_optimization.py |
| 07-高级RAG | Self-RAG自反思、GraphRAG知识图谱 | advanced_rag_demo.py |
| 08-LangGraph | StateGraph构建、可迭代工作流 | langgraph_rag_demo.py |
| 09-生产级RAG | Docker部署、Prometheus监控、缓存 | docker-compose.yml, health_check.py |
| 10-实战案例 | 知识库、客服、法律、医疗四场景 | rag_applications_demo.py |
运行代码示例:
# 基础 Demo(直接运行,无需外部服务)
python docs/02-数据加载/code/document_loader_demo.py
# 向量数据库 Demo
python docs/04-向量数据库/code/vector_db_demo.py
# 嵌入模型对比
python docs/03-嵌入模型/code/embedding_comparison.py
# 混合检索演示
python docs/05-检索策略/code/hybrid_search_demo.py
# 完整 RAG 链(需 LM Studio)
python docs/01-RAG基础/code/basic_rag_pipeline.py
# 从快速入口开始
python rag_demo.py初学入门 → 进阶实践 → 框架拓展 → 面试准备
01 章 → 02-06 章 → practice/ → interview/
| 框架 | 目录 | 说明 |
|---|---|---|
| LightRAG | practice/lightrag/ | 基于知识图谱的轻量级 Graph RAG |
| GraphRAG | practice/graphrag/ | 微软 GraphRAG,社区检测+自动摘要 |
| 更多 | practice/... | 持续更新中 |
面试高频题全覆盖:
基础概念 → 技术深度 → 系统设计 → 手撕代码 → 高频题库
# 1. 安装依赖
uv sync
# 2. 运行基础 Demo(无需 LM Studio)
python docs/02-数据加载/code/document_loader_demo.py
# 3. 运行向量数据库 Demo
python docs/04-向量数据库/code/vector_db_demo.py
# 4. 运行完整 RAG 链(需 LM Studio)
python docs/01-RAG基础/code/basic_rag_pipeline.py
# 5. 或从快速入口开始
python rag_demo.py💡 运行前请确保 LM Studio 已启动,Embedding 和 Chat 模型已加载。
| 组件 | 技术选型 | 说明 |
|---|---|---|
| 框架 | LangChain 1.4.x | LCEL 链式调用 |
| Embedding | BGE-M3(LM Studio 部署) | 1024 维,多语言 |
| Reranker | BGE-Reranker-v2-m3 | Cross-Encoder 精排 |
| Chat LLM | Qwen3 系列 | 本地对话模型 |
| 向量库 | ChromaDB | 轻量级持久化 |
| 语言 | Python 3.13+ |
欢迎贡献!你可以:
- 📝 完善教程:补充 docs/ 各章节的技术文章
- 💻 提交代码:完善各章节
code/中的 Demo 或新增 practice/ 框架实战 - 🎯 补充面试题:丰富 interview/ 题库
- 🐛 提交 Issue:报告问题或建议
本项目基于 MIT 协议开源。