Agentic-RAG-with-LangGraph-and-Ollama
laxmimerit/Agentic-RAG-with-LangGraph-and-Ollama加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你是一家律所的 AI 助手,用户问:"我们去年为 XX 公司起草的那份并购合同,有什么关键条款需要注意?"
通用大模型大概率会一本正经地"编造"答案——因为它根本没有见过那份合同。
这背后是一个根本性矛盾:大模型的知识是训练时的"快照",而现实世界的知识每分每秒都在更新。 检索增强生成(RAG)就是为了解决这个问题。但传统 RAG 有一个致命缺陷——它只是简单地把文档切块、向量化、再检索,没有真正的"理解"和"推理"能力。
laxmimerit/Agentic-RAG-with-LangGraph-and-Ollama 解决的就是这个问题:它基于 LangGraph 构建了一个多 Agent 协作的工作流,让大模型不仅能检索,还能思考、路由、反思、调用工具,甚至与数据库交互——就像一个真正的 AI 助手。
项目的核心架构是 LangGraph 有向无环图(DAG)工作流,用 13 个 Jupyter Notebook 由浅入深地展示了从基础到生产级的完整路径:
整个系统的技术栈可以分为三层:
① 编排层:LangGraph LangGraph 是 LangChain 团队为构建有状态、多步骤 Agent 工作流而生的框架。相比 LangChain 的 Chain,LangGraph 允许你定义节点的执行顺序、分支条件、中断点(Human-in-the-Loop),以及状态的持久化。这让它天然适合复杂的 Agent 场景。
② 本地 LLM 层:Ollama
Ollama 让你在本地运行各种开源大模型(Llama 3、Mistral、Qwen 等),无需 GPU 云服务。本项目使用 langchain-ollama 集成,所有 LLM 调用都经过 Ollama 处理,数据永远不会离开你的机器。
③ 记忆层:多层次持久化
条件路由(Conditional Routing) 不同问题走不同路径:简单问题直接回答,复杂问题触发 RAG 检索,数据库问题调用 SQL Agent。这是 Agentic RAG 和普通 RAG 的本质区别——能根据问题类型动态选择处理策略。
MySQL Agent 项目专门构建了一个 SQL Agent,可以根据自然语言问题自动生成 SQL 查询,让大模型直接与 MySQL/PostgreSQL 对话,实现结构化数据问答。
Human-in-the-Loop(中断与人工介入) LangGraph 支持在关键节点中断执行,等待人工确认。这对于医疗、法律、金融等高风险场景至关重要——AI 不能自行做决策,必须有人类把关。
Docling 文档解析 支持 PDF、Word、HTML 等复杂文档的解析与向量化,采用 docling 2.66.0(已锁定版本,避免内存回归问题)。
Tavily 联网搜索 集成 Tavily API,让 Agent 具备实时联网搜索能力,弥补本地模型知识时效性不足的问题。
本项目不提供 Docker 支持,需要手动配置完整的 Python 环境。
由于 Ollama 需要本地加载大模型,建议配置:
ollama pull llama3 拉取模型pip install -r requirements.txt.env 中设置 TAVILY_API_KEY(可选,用于联网搜索)项目以 Jupyter Notebook 为核心交付物(13 个 .ipynb 文件),更适合学习和调试,而非直接作为服务运行。如需生产部署,需要将 Notebook 逻辑改写为 Python 模块或 FastAPI 服务。
无 Dockerfile、无 docker-compose、不支持一键启动。
Agentic RAG 代表了 RAG 技术的演进方向:从"检索 + 生成"的简单两阶段,走向"理解 → 路由 → 检索 → 反思 → 生成"的多阶段智能工作流。
LangGraph 的出现让这种复杂工作流的构建变得可维护、可调试、可持久化。结合 Ollama 的本地化能力,这个项目为那些不能把数据送云端的企业(医疗、金融、法律、政府)提供了一条可行的落地方案。
作者 laxmimerit(KGP Talkie)是一名活跃的 AI 教育者,Udemy 上有超过 10 万学生,他的课程体系覆盖了从机器学习基础到 LLM Agent 开发的完整路径。本项目是这个知识体系的最新组成部分,持续更新中。
本分析基于项目 README、源代码结构及依赖分析生成。报告字数约 1500 字。