RAG_Techniques
全球最大RAG教程库,37个Notebook覆盖从基础检索到Agentic/GraphRAG的前沿技术,是AI开发者必备参考手册
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
全球最大RAG教程库,37个Notebook覆盖从基础检索到Agentic/GraphRAG的前沿技术,是AI开发者必备参考手册
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你让 AI 阅读了公司 300 页的产品手册后,问它"我们最新的保修政策是什么",结果它一本正经地编了一个根本不存在的条款。这种让用户哭笑不得的"一本正经胡说八道",就是大语言模型(LLM)的幻觉问题——模型在知识边界之外的内容上容易生成看似合理、实则错误的信息。
检索增强生成(Retrieval-Augmented Generation,RAG)就是为了解决这个问题而生的技术范式。其核心思想非常直观:不要让模型凭空生成答案,而是先从可信的知识库中检索相关文档,再让模型基于这些真实内容作答。 这就像一个开卷考试:模型不再需要背下所有知识,只需学会如何正确使用检索工具。
然而,RAG 的实际实现远比概念复杂。从最简单的向量检索,到 HyDE 假设文档嵌入、GraphRAG 知识图谱增强,再到 CRAG 自适应纠正——不同的业务场景需要不同的 RAG 策略。NirDiamant/RAG_Techniques 正是这个领域的"百科全书",它以 37 个精心配备的 Jupyter Notebook 为载体,系统梳理了从基础到前沿的几乎所有主流 RAG 技术,是 AI 开发者必备的参考手册。

图1:作者 Nir Diamant 在 Amazon 上出版的《RAG Made Simple》,与本仓库配套,已售出 1500+ 册,发布即登顶 Amazon 生成式 AI 畅销榜
本仓库的作者是 Nir Diamant(X/Twitter @NirDiamantAI),一位深耕 NLP 和 AI 工程领域的技术作者。他的个人主页和 GitHub 签名都指向了 DiamantAI Collective——一个专注于 AI 工程的社区和招聘平台。
RAG_Techniques 仓库的诞生背景非常清晰:2023 年随着大模型热潮兴起,RAG 作为将 LLM 与私有知识库结合的主流方案受到广泛关注,但彼时社区缺少系统性的学习资源。Nir 决定用自己最擅长的方式——视觉化、实战化的 Notebook 教程——来填补这个空白。
这个项目的增长速度令人印象深刻:上线后迅速积累了超过 27,500 颗 GitHub Stars,仓库内包含了 37 个完整的 RAG 技术 Notebook、19 个可直接运行的 Python 脚本、以及一套配套的评估框架。这种规模让它成为了 RAG 领域毫无争议的标杆资源库。
作者还以本仓库为基础,出版了《RAG Made Simple》书籍(Amazon 4.4 星,400+ 页),进一步将仓库中的知识体系化、文字化。这条"开源教程 → 社区验证 → 出版变现"的路径,也成为知识创作者的可参考模式。
项目从最简单的 Simple RAG 开始,提供了 LangChain 和 LlamaIndex 两种实现方式的对照教程,让初学者能直观理解 RAG 的标准工作流:文档加载 → 分块(chunking)→ 向量化 → 相似性检索 → 生成回答。
分块策略是 RAG 中最基础也最影响效果的一环。项目详细讲解了:
检索质量直接决定生成质量。项目覆盖了多条提升检索效果的路线:
上下文丰富化:通过在每个块前后扩展上下文窗口(Context Enrichment),减少因切分导致的语义丢失。同时提供 Contextual Chunk Headers 技术,为每个块自动生成描述性标题,增强检索时的相关性判断。
查询变换(Query Transformations):当用户提问方式与知识库表述不一致时,通过 HyDE(假设性文档嵌入)和 HyPE(假设性提示嵌入)让检索阶段主动"理解问题意图",生成假设性答案来辅助匹配。
重排序(Reranking):两阶段检索——先用向量快速召回 Top-K,再用 Cross-Encoder 精细排序,显著提升最终 Top-1 的准确率。项目同时提供了 LangChain 和 LlamaIndex 的实现。
融合检索(Fusion Retrieval):将多种检索方法的结果通过 Reciprocal Rank Fusion 算法融合,弥补单一检索器的盲区。
这是项目最具前沿性的部分,展示了如何让 RAG 系统"主动思考":
微软开源 GraphRAG 后,本仓库迅速跟进,提供了完整的实现教程:
还涵盖了 RAPTOR(树形层级索引)、MemoRAG(记忆增强)、DartBoard(多维度检索评估)、JSON-RAG(结构化数据处理)、Propositional Chunking(命题级别分块)、Retrieval with Feedback Loop(带反馈的迭代检索)、Adaptive Retrieval(自适应检索时机)等前沿探索。
从代码层面看,RAG_Techniques 的架构非常清晰:
核心技术依赖:
代码组织:
all_rag_techniques/ # 37个 Jupyter Notebook(教程)
all_rag_techniques_runnable_scripts/ # 19个纯 Python 脚本(可直接运行)
helper_functions.py # 共享工具函数(PDF编码、文本处理等)
evaluation/ # 评估框架(含 deep_eval、GRUSE、open-rag-eval)
tests/ # 基础导入测试
data/ # 示例 PDF 数据
helper_functions.py 中封装了 PDF 编码、分块、BM25 初始化等复用逻辑,是整个项目的基础设施层。每个 Notebook 都遵循"问题引入 → 原理讲解 → 代码实现 → 效果演示"的四段式结构,非常适合学习。
项目不只是教如何构建 RAG,还提供了系统性的评估工具:
这套评估体系帮助开发者在实际项目中量化不同 RAG 技术的效果差异,而不是凭感觉判断。
适合的人群:
不适合的场景:
上手路径建议:从 Simple RAG(LangChain 版)开始 → 学习分块策略 → 掌握重排序 → 再根据业务场景选择高级技术(GraphRAG、Agentic RAG 等)。每个 Notebook 都有对应的 Runnable Script,适合在本地边运行边理解。
诚实地看,这个项目也有一些值得注意的局限:
RAG_Techniques 的存在本身就是一个信号:RAG 技术已经从"少数人研究的学术方向"演变为"每个 LLM 应用开发者都需要了解的基础技能"。这个仓库扮演了知识民主化的角色——将散落在论文、博客、工程博客中的碎片知识整合为一个系统性的学习路径。
从趋势看,RAG 正在沿着几个方向演进,而这个仓库的内容布局也反映了这个方向:
Nir Diamant 本人也因此项目获得了可观的社区影响力,其 DiamantAI Collective 已成为连接 AI 人才与招聘方的平台。这说明高质量的技术内容本身就能创造价值——无论是对社区还是对作者本人。
本分析基于 GitHub 仓库 37 个 Notebook、19 个脚本及配套文档生成,所有技术描述均经过代码层面的核实。图片来源于仓库 images/ 目录并验证可访问。