All-in-RAG 中文教程:先跑第一章,再选进阶路线
All-in-RAG 是 Datawhale 的 RAG 教程仓库。文档从加载、分块、嵌入和检索开始,随后进入 Milvus、混合检索、Text2SQL、评估和知识图谱 RAG。第一次接触时,先把第一章的小例子跑通,能更快看清数据如何经过索引、检索和生成。
main 分支更新,需要复现实验时请固定 commit。1. 建一个独立环境
官方准备章节用 Conda 创建 Python 3.12.7 环境。仓库的依赖包含 PyTorch、LangChain、LlamaIndex、Milvus、Unstructured 等多组包,不适合直接塞进已有项目环境。
git clone https://github.com/datawhalechina/all-in-rag.git cd all-in-rag conda create --name all-in-rag python=3.12.7 conda activate all-in-rag cd code pip install -r requirements.txt
安装前先查看 requirements.txt,确认磁盘、Python 平台和可选数据库依赖。教程文档提到的 Docker、Milvus 或其他服务,只在读到对应章节时再准备。
2. 把密钥留在本机
准备章节示例使用环境变量读取模型 API key。不要把真实 key 写进示例代码、Notebook、终端截图或 Git 提交。团队环境应为教程单独创建受限额度的 key,并在练习结束后轮换或撤销。
3. 只跑第一章的最小链路
conda activate all-in-rag cd code/C1 python 01_langchain_example.py
01_langchain_example.py 加载本地 Markdown,以递归分块器处理文档,使用 BAAI/bge-small-zh-v1.5 生成向量,再从内存向量库取回相关片段交给模型。官方说明首次运行会下载嵌入模型,所以要预留下载时间和缓存空间。
4. 按问题选后续章节
文档多、单机内存索引不够用时,再读 Milvus 与索引优化;关键词和向量召回各有遗漏时,看混合检索;需要结构化库查询时读 Text2SQL;准备比较配置时进入评估章节。这样每次只引入一个新变量,排错会比一次装完所有组件清楚。
与 LangChain 官方 Retrieval 文档对比
LangChain 官方文档围绕当前框架 API,说明 loaders、splitters、embeddings、vector stores,以及 2-Step、Agentic、Hybrid RAG 的取舍。All-in-RAG 更像中文课程,横跨 LangChain、LlamaIndex、Milvus、Text2SQL、评估与图 RAG。查最新 LangChain 接口时直接看官方文档;想沿着中文路径从小例子读到完整项目时,再用 All-in-RAG 串起知识点。
requirements.txt 与 GitHub Releases;没有安装依赖、下载模型、配置 API key、运行示例或验证教程输出。这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。
先判断这个项目是否适合你
采用建议
All-in-RAG 适合作为中文 RAG 学习主线。先跑第一章的小样例,再按需求进入检索、评估或图 RAG 章节。准备实际服务时,把教程当作实验起点,并另行补齐数据权限、基准集、监控和成本控制。
原教程未展开的系统信息
核心功能
按链路学习 RAG
目录从文档加载和分块开始,继续讲嵌入、向量库、混合检索、生成与评估,章节顺序对应常见 RAG 工程链路。
可跟做的 Python 示例
第一章示例使用本地 Markdown、BGE 中文嵌入、内存向量库和模型 API 跑通加载、索引、检索、生成四步。
架构与数据流
仓库的 docs 目录保存教程,code/Cx 保存对应章节示例,data 提供样例数据,models 用于本地模型文件。学习路径由输入与分块进入索引和检索,再接生成、评估及项目实践。它是一套教程材料,不是可直接部署的统一服务。
常见问题
All-in-RAG 现在有正式版本号吗?
没有。项目的 GitHub Releases 页面为空,内容随 main 分支和在线文档滚动更新;引用教程时最好记录提交日期或 commit。
All-in-RAG 的第一段代码从哪里开始?
按准备章节创建 Python 3.12.7 环境并安装 code/requirements.txt,然后进入 code/C1 运行 01_langchain_example.py。
运行第一章会下载什么?
官方示例说明首次运行会下载 BAAI/bge-small-zh-v1.5 嵌入模型,同时调用配置好的模型 API。
All-in-RAG 的内容能直接用于商业项目吗?
仓库声明采用 CC BY-NC-SA 4.0,其中包含非商业性使用条件。商业复用教程内容或示例前,应先核对许可范围。