RAG Techniques

活跃
GitHub Jupyter Notebook NOASSERTION

简介

NirDiamant 的 RAG_Techniques 仓库系统收录并演示了当下主流的检索增强生成(RAG)进阶技术与工程实践。

核心特性

  • 系统化分类 — 把 RAG 技术按简单 / 高级 / 模块化等维度组织,便于按需学习
  • 可运行 Notebook — 每个技术都附 Jupyter Notebook 与最小可运行代码
  • 评测与对比 — 同时提供检索质量、答案质量的评测脚本与可视化
  • 多后端支持 — 涵盖 LangChain、LlamaIndex、Haystack 等多框架实现
  • 持续更新 — 紧跟学术与工业界最新进展,定期纳入新方法
  • 教学友好 — 配套文章、教程与 Amazon 配套书籍,便于系统学习

适用场景

💡 系统性学习 RAG 全流程的进阶技术与工程实践
💡 在团队内做 RAG 技术选型与方案对比评测
💡 把 Notebooks 中的代码片段直接复制到生产项目
💡 用作企业内部 RAG 培训课程的教材
💡 跟踪最新 RAG 研究与开源实现的桥梁

优势与不足

优势

  • 活跃维护,近期持续更新
  • 社区热度高(29.4k stars)
  • 项目有一定历史沉淀(已维护 2 年)
  • Issue 响应及时,积压少

⚠️ 不足

  • 缺少明确的开源许可证

快速开始

# 克隆仓库
git clone https://github.com/NirDiamant/RAG_Techniques.git
cd RAG_Techniques

# 创建虚拟环境
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

# 启动 Jupyter
jupyter notebook

# 在 all_rag_techniques/ 目录下选择感兴趣的技术 Notebook 即可运行

相关项目

LightRAG

39.5k · Python
活跃 A+

LightRAG 是一个简洁高效的 RAG 框架,使用图结构增强检索效果,发表于 EMNLP 2025。

raggraphretrieval +2
  • · 图结构增强检索 — 使用知识图谱实体和关系进行双层检索(local/global),比传统向量检索更精准
  • · 四种文本分块策略 — 支持 Fixed、Recursive、Vector、Paragraph 分块,适应不同文档类型
  • · 多后端存储支持 — 兼容 Neo4j、PostgreSQL、MongoDB、OpenSearch、JSON KV Store 等多种存储方案

KAG

9.0k · Python
不活跃 B

KAG 是基于 OpenSPG 引擎和 LLM 的逻辑形式引导推理与检索框架,用于构建专业领域知识库的逻辑推理和事实问答解决方案,有效克服传统 RAG 向量相似度计算模型的不足。

knowledge-graphragreasoning +2
  • · 知识与文本双向索引:知识图谱节点与原文分块互相索引,保留完整上下文信息
  • · 逻辑形式引导的混合推理:将自然语言问题转化为形式化逻辑推理,支持精确匹配、文本检索、数值计算与语义推理
  • · Schema 约束的知识构建:兼容自由信息抽取与领域专家知识的结构化表示

Haystack

26.4k · Python
活跃 A+

Haystack 是企业级 RAG 与搜索应用框架,支持文档处理、检索、生成与评估全链路。

ragretrievalllm +1
  • · 模块化管道架构 — 通过有向无环图组合检索、路由、记忆和生成组件,支持条件分支与循环
  • · 模型与供应商无关 — 无缝切换 OpenAI、Anthropic、Cohere、Hugging Face、AWS Bedrock 等,无需重写系统
  • · 上下文工程控制 — 显式控制信息检索、排序、过滤、组合和路由,确保上下文质量和可追溯性

Agentic RAG for Dummies

4.0k · Jupyter Notebook
活跃 A

Agentic RAG for Dummies 是一个教学性质的 Agentic RAG 项目,用简洁的代码展示了如何构建具有 Agent 能力的 RAG 系统。包含路由、检索、评估和迭代优化等核心概念,是入门 Agentic RAG 的优秀参考。

ragagenttutorial +2
  • · 层级索引:父子块结合实现精度与上下文兼得
  • · 对话记忆,支持多轮对话连续性
  • · 查询澄清:重写查询并支持人机交互暂停