模型 / 数据集
datawhalechina/all-in-rag avatar
datawhalechina/all-in-rag

All-in-RAG 评测:一本能跑起来的 RAG 全栈教材,但别指望它是开箱即用的框架

🔍大模型应用开发实战一:RAG 技术全栈指南,在线阅读地址:https://datawhalechina.github.io/all-in-rag/

11,102 个 Star5,525 个 ForkPython许可证因项目而异

秒懂

它是什么?
Datawhale 的 all-in-rag 是一套从文本分块讲到知识图谱的 RAG 中文教程仓库。它用文档加代码的方式覆盖了检索增强生成的完整链路,适合想系统建立 RAG 知识体系的开发者,但它不是可以直接部署的框架。
适合谁用?
适合有 Python 基础、想按一条完整路径学习 RAG 的开发者,尤其是愿意跟着文档敲代码、自己搭环境的初学者。不适合需要开箱即用检索服务或生产级参考实现的团队,这个仓库的代码散落在各章节文档里,没有统一的包结构和版本锁定。
能商用吗?
未经许可不能。GitHub 在这个仓库里没有找到许可证文件;没有许可证,默认即「保留所有权利」:你可以阅读代码,但不能复用。使用前请看看 README,或先征得作者同意。
还在维护吗?
在维护。仓库最近一次提交在 12 天前。
用什么语言写的?
主要是 Python(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的不是代码问题,是知识结构问题

RAG 相关的技术文章多如牛毛,但大多只讲某一个环节,比如怎么切分文本,或者怎么选向量数据库。all-in-rag 想解决的恰恰是这种碎片化。仓库把 RAG 拆成十章,从第一章的「四步构建 RAG」快速上手,一路走到第九章的图 RAG 架构设计,中间穿插数据加载、文本分块、向量嵌入、混合检索、Text2SQL、系统评估这些环节。它本质上是一本带代码的教材,而不是一个可以 pip install 的库。面向的人群写得很清楚:有 Python 基础、能简单使用 docker、懂基本 Linux 命令的开发者。对完全没接触过 LLM 的人,文档说推荐但非必需了解基本概念。这个定位意味着它默认你会自己处理环境问题,文档只负责把知识链路串起来。

章节推进路线:从四步入门到图数据库

仓库的目录结构直接反映了学习路径的设计。第一章先给一个「四步构建 RAG」的最小可用示例,让读者先跑通再理解。第二章进入数据准备,讲多格式文档加载和文本切分策略。第三章是索引构建,覆盖向量嵌入、多模态嵌入、向量数据库选型,其中 Milvus 单独占了一节实践课。第四章检索进阶是内容最密集的部分,包含混合检索、查询构建、Text2SQL、查询重构与分发。第五、六章讲生成集成和系统评估。第七到九章是拓展,第七章引入基于知识图谱的 RAG,第八、九章是一个完整的实战项目。这个项目的主题是「今天吃什么」,代码仓库单独挂在 FutureUnreal/What-to-eat-today 下,第九章在此基础上做图 RAG 的架构改造。第十章的第二个实战项目还在规划中。从结构看,它刻意把评估放在检索技术之后、实战项目之前,这个顺序比大多数把评估丢到最后的教程更合理。

实战项目的真实形态:一个需要你自己搭的「吃什么」应用

第八、九章不只是贴代码,而是按工程步骤拆解。第八章从环境配置与项目架构讲起,然后分别实现数据准备模块、索引构建与检索优化、生成集成与系统整合。第九章在此基础上做图 RAG 的架构设计,涉及图数据建模、Milvus 索引构建、智能查询路由。这意味着读者要跟着文档自己把项目搭起来,而不是从仓库拉一个完整的可运行工程。文档里明确要求会使用 docker,因为 Milvus 和可能用到的 Neo4j 都依赖容器环境。这种做法有得有失。好的一面是,读者被迫理解每个模块为什么存在,而不是改几行配置就跑。不好的一面是,环境问题会消耗大量时间,尤其是 Milvus 的版本兼容和向量索引参数调优,文档只能给出思路,具体报错还得自己查。

多模态是卖点,但内容厚度明显不足

仓库的 topics 里列了 multimodal,第四章的表格也强调「文本+图像检索」。但实际内容只有第三章的「多模态嵌入」一节、Milvus 的多模态检索实践,以及 Extra-chapter 里一篇标注为「优化中」的 Jina v5-omni 实践文档。对比文本 RAG 从分块到评估的完整覆盖,多模态部分明显单薄。文档没有给出一个完整的图文混合检索的端到端案例,Milvus 实践那节更偏向向量数据库操作而非多模态模型的选择与调优。如果你冲着多模态 RAG 来学,这份材料目前只能给你一个入门方向,撑不起「全栈」这个说法。仓库在 Extra-chapter 里欢迎外部投稿,说明这块内容还在生长中,读者需要自己留意文档的更新状态。

与直接读框架文档的差异

如果你已经熟悉 LangChain 或 LlamaIndex,可能会觉得这份教程的节奏偏慢。但它的价值恰恰在于不假设你熟悉任何特定框架。教程把混合检索、查询构建、Text2SQL 这些概念先讲清楚,再让你在实战项目里用具体工具实现。这个顺序和读 LangChain 官方文档相反,后者是工具优先,概念散落在各个 API 页面里。另一个差异在知识图谱部分。第七章和第九章的图 RAG 内容在 LangChain 文档里没有对应系统讲解,Neo4j 的官方教程又默认你懂图数据库。all-in-rag 把图数据建模和查询路由放在 RAG 的语境里讲,对没接触过图数据库的读者更友好。代价是深度有限,文档能让你知道图 RAG 大概怎么搭,但不会教你 Cypher 查询优化或图算法的选型。

维护状态与升级成本

仓库最后一次推送是 2026 年 9 月,没有检索到任何 release 版本。这意味着你无法通过版本号判断文档内容与某个库版本的对应关系。文档里涉及的 LangChain、Milvus、Jina 这些项目都在快速迭代,教程里的代码很可能因为 API 变更而失效。仓库没有提供统一的依赖锁定文件,每个章节的代码依赖散落在各自的文档里,读者需要自己维护环境。这种形态对学习是够用的,但如果你想基于教程代码改造自己的项目,就要做好频繁调试依赖版本的准备。许可证信息在仓库元数据里显示为 unknown,README 里也没有明确声明,在商用或二次分发前需要向维护者确认授权范围。

读这份教程前应该先确认的三件事

第一,你的 Python 版本。文档标注的是 Python 3.12.7,如果你的环境是 3.10 或更低,部分依赖可能装不上。第二,你是否愿意处理 Docker。Milvus 和 Neo4j 相关章节都依赖容器环境,如果你所在网络拉取 Docker 镜像困难,这几章基本没法实践。第三,你的学习目标。如果只想快速搭一个问答机器人,第一章的「四步构建 RAG」就够了,后面的内容对你来说是多余的。如果你想系统理解 RAG 每个环节的取舍,比如为什么混合检索比纯向量检索好、Text2SQL 在什么场景下才有必要,那这份教程是目前中文材料里路径最完整的一份。它不是工具书,是一份需要你花几周时间跟着敲的课程。

编辑结论

适合有 Python 基础、想按一条完整路径学习 RAG 的开发者,尤其是愿意跟着文档敲代码、自己搭环境的初学者。不适合需要开箱即用检索服务或生产级参考实现的团队,这个仓库的代码散落在各章节文档里,没有统一的包结构和版本锁定。不适合对多模态检索有迫切需求的人,仓库里多模态章节目前只有 Milvus 实践和一篇标注为优化中的 Omni Embedding 文档,覆盖面有限。采用前先做两件事:核对文档中引用的库版本与你本地 Python 3.12.7 环境的兼容性,确认你愿意承担 Docker 和向量数据库的环境成本。如果你要的是能直接调用的检索组件,去读 Milvus 官方文档或 LangChain 的检索模块,比啃这份教程更快。

官方来源

  1. datawhalechina/all-in-rag on GitHub
  2. Issues
  3. Project website
  4. README
社区笔记

社区笔记