发现 AI 代理的未来arrow_forward

RAG_Techniques

calendar_today收录于 2026年2月23日
category文档教程与资源
code开源
Python大语言模型知识库LangGraphLangChainRAGAI代理文档教程与资源其他知识管理/检索/RAG教育/研究资源

一个涵盖30+种高级检索增强生成(RAG)技术的开源教程与代码库,包含Graph RAG、Agentic RAG及各类检索优化策略,提供基于LangChain的可运行脚本和Jupyter Notebook实现。

RAG_Techniques 项目详解#

项目定位#

RAG_Techniques 是由 Nir Diamant 发起并维护的开源项目,致力于成为 RAG 领域的「技术百科全书」。项目不仅提供理论解释,还提供了基于 Jupyter Notebook 的可执行代码和独立 Python 脚本。内容涵盖从简单的向量检索到复杂的图结构 RAG(Graph RAG)和代理式 RAG(Agentic RAG)。

解决的核心问题#

  • 准确性不足:解决传统简单 RAG 在处理复杂查询时检索不准确的问题
  • 上下文丢失:解决长文档分块后上下文割裂的问题
  • 评估困难:提供标准化的评估方法(如 DeepEval, GroUSE)来衡量 RAG 系统性能
  • 落地门槛高:通过模块化的 Notebook 和通用助手函数,降低将高级 RAG 技术集成到生产环境的难度

技术分类(34种技术)#

基础RAG技术#

  • Simple RAG - 适合新手的基于检索查询的问答系统
  • Reliable RAG - 增加验证和精细化机制确保检索信息的准确性和相关性
  • Optimizing Chunk Sizes - 平衡上下文保留和检索效率的文本分块优化
  • Proposition Chunking - 将文本分解为简洁、完整、有意义的句子

查询增强技术#

  • Query Transformations - 查询改写、回退提示、子查询分解
  • HyDE (Hypothetical Document Embedding) - 生成假设性问题改进查询与数据的匹配
  • HyPE (Hypothetical Prompt Embeddings) - 预计算假设提示,提升检索精度高达42%

上下文增强技术#

  • Contextual Chunk Headers - 创建文档级和段落级上下文头
  • Relevant Segment Extraction - 动态构建多块文本段
  • Semantic Chunking - 基于语义一致性而非固定大小分割文档
  • Contextual Compression - 压缩检索信息同时保留查询相关内容

高级检索方法#

  • Fusion Retrieval - 结合关键词搜索和向量搜索
  • Reranking - LLM评分、交叉编码器、元数据增强排序
  • Hierarchical Indices - 文档摘要和详细块的双层系统
  • Multi-modal RAG - 多模态检索(字幕生成和Colpali方法)

高级架构#

  • Graph RAG with LangChain - 知识图谱集成
  • Microsoft GraphRAG - 微软开源GraphRAG系统
  • RAPTOR - 树状组织的递归抽象处理检索
  • Self-RAG - 自适应决定是否使用检索信息
  • Corrective RAG (CRAG) - 动态评估和纠正检索过程
  • Agentic RAG with Contextual AI - 构建生产级代理RAG管道

应用场景#

  • 金融文档分析:Agentic RAG用于复杂查询解决
  • 知识库问答:企业级文档检索和问答系统
  • 多模态内容处理:PDF、PPT等多媒体数据处理
  • 复杂推理任务:多跳问题和复杂查询处理

项目结构#

RAG_Techniques/
├── all_rag_techniques/              # Jupyter notebook实现
├── all_rag_techniques_runnable_scripts/  # 可运行的Python脚本
├── data/                            # 示例数据
├── evaluation/                      # 评估方法
├── images/                          # 技术图解
├── helper_functions.py             # 核心助手函数
└── CONTRIBUTING.md                 # 贡献指南

核心助手函数#

  • encode_pdf(): PDF文档编码为向量存储
  • retrieve_context_per_question(): 问题检索
  • bm25_retrieval(): BM25检索
  • exponential_backoff(): 指数退避重试机制

快速开始#

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

# 导航到感兴趣的技术
cd all_rag_techniques/[technique-name]

# 配置环境变量
export OPENAI_API_KEY="your_key_here"

核心依赖#

  • langchain-community
  • langchain-text-splitters
  • langchain-openai
  • langchain-core
  • pydantic
  • rank_bm25
  • PyMuPDF (fitz)
  • numpy
  • faiss-cpu

配置能力#

嵌入提供商#

class EmbeddingProvider(Enum):
    OPENAI = "openai"
    COHERE = "cohere"
    AMAZON_BEDROCK = "bedrock"

模型提供商#

class ModelProvider(Enum):
    OPENAI = "openai"
    GROQ = "groq"
    ANTHROPIC = "anthropic"
    AMAZON_BEDROCK = "bedrock"

Notebook结构标准#

每个技术Notebook包含:标题和概述、详细解释、可视化表示(Mermaid图)、实现步骤、使用示例、比较分析、参考资源。

相关项目#

  • Agents Towards Production: 生产级GenAI代理构建
  • GenAI Agents Repository: AI代理实现集合
  • Prompt Engineering Techniques: 提示工程策略

保持更新

获取最新的 AI 工具和趋势,直接发送到您的收件箱。没有垃圾邮件,只有智能。

rocket_launch