LangChain + Ollama Ollama+ Langfuse Langfuse + LangChain chat 模型集成(OpenAI/Anthropic/Google)+ LangGraph+ RAGAS

基于 LangGraph 构建模块化 Agentic RAG 系统,支持分层索引、多智能体并行检索与人工澄清。

✓ 提供商无关,本地 Ollama 即跑✓ 分层索引兼顾检索精度与上下文 ✕ 小模型可能忽略指令或幻觉

方案简介

本项目演示如何使用 LangGraph 以极简代码构建一个模块化的 Agentic RAG(检索增强生成)系统。

大多数 RAG 教程只展示基础概念,但缺少对构建模块化、由 Agent 驱动的系统的指导。本项目旨在弥合这一鸿沟,同时提供学习材料和可扩展的架构。它面向两类用户:一是想要快速理解 Agentic RAG 核心概念的初学者(通过交互式 Notebook 学习路径),二是希望基于模块化项目灵活替换各组件(LLM 提供商、嵌入模型、PDF 转换器、Agent 工作流)的开发者。默认的可运行应用以 Ollama 为优先,亦可适配 LangChain 支持的任何聊天模型,并给出了 Anthropic、OpenAI、Google 的示例。

整套系统围绕 LangGraph 编排,将文档分层索引、对话记忆、查询澄清、多智能体并行检索、自校正与上下文压缩、可观测与评估整合为一条端到端的工作流。

使用与配置要点

默认配置(Ollama 本地)

from langchain_ollama import ChatOllama

llm = ChatOllama(model="granite4.1:8b", temperature=0, seed=42)

OpenAI GPT

from langchain_openai import ChatOpenAI
import os

os.environ["OPENAI_API_KEY"] = "your-api-key-here"
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)

Anthropic Claude

from langchain_anthropic import ChatAnthropic
import os

os.environ["ANTHROPIC_API_KEY"] = "your-api-key-here"
llm = ChatAnthropic(model="claude-sonnet-4-5-20250929", temperature=0)

Google Gemini

import os
from langchain_google_genai import ChatGoogleGenerativeAI

os.environ["GOOGLE_API_KEY"] = "your-api-key-here"
llm = ChatGoogleGenerativeAI(model="gemini-2.5-flash", temperature=0)

两种使用路径

  • 学习路径(Notebook):通过 notebooks/agentic_rag.ipynb 交互式 Notebook 逐步学习核心概念。配套评估 Notebook notebooks/evaluation.ipynb 使用直接 RAGAS 指标调用为最终答案与子/父级工具输出打分。
  • 构建路径(模块化项目):灵活替换 LLM 提供商、嵌入模型、PDF 转换器与 Agent 工作流中各组件。

四阶段查询处理流程

User Query → Conversation Summary → Query Rewriting → Query Clarification →
Parallel Agent Reasoning → Aggregation → Final Response

阶段 1 维护滚动摘要与近期对话历史;阶段 2 解析指代、拆分多部分问题、检测不明确输入并在需要时暂停等待人工输入;阶段 3 为每个子查询派生并行子图,分别检索子分块、获取父分块、必要时自校正、压缩上下文并在预算耗尽时优雅降级;阶段 4 聚合各 Agent 响应生成最终回答。

注意事项与常见问题

  • 模型名称变更频繁,部署前请务必查阅各提供方官方文档获取最新可用模型与标识符。
  • 为保证工具调用与指令遵循的可靠性,Ollama 本地模型建议选择 ≥ 8B;较小模型可能忽略检索指令或产生幻觉。
  • 项目提供了一个可选的辅助工具 Chunky,用于在构建向量库前将 PDF 转为 Markdown、清洗文档、检查分块、对比分块策略并丰富元数据。
  • 关于可观测与扩展说明,完整细节、扩展解释与 Langfuse 可观测集成位于 Notebook 与完整项目中;评估细节见 notebooks/evaluation.ipynb

文档节选:

Optional: 🐿️ Chunky is an open-source toolkit for reliable RAG pipelines: convert PDFs to Markdown, clean documents, inspect chunks, compare chunking strategies, and enrich metadata before building the vector store.

优缺点

  • ✓ 提供商无关,本地 Ollama 即跑
  • ✓ 分层索引兼顾检索精度与上下文
  • ✕ 小模型可能忽略指令或幻觉

出处

本方案挖掘自开源项目 GiovanniPasq/agentic-rag-for-dummies,方案内容与实施命令均来自其 README 原文。

方案出处
GiovanniPasq/agentic-rag-for-dummies:A modular Agentic RAG built with LangGraph — learn Retrieval-Augmented Generatio
4016 star A modular Agentic RAG built with LangGraph — learn Retrieval-Augmented Generation Agents in minutes.

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。