Production Agentic RAG Course - 生产级智能体RAG实战课程
原标题:jamwithai/production-agentic-rag-course
Python★ 6,288 stars+31 今日
速览
该项目通过详细的课程和代码库,指导开发者从零开始构建具备推理、工具调用和记忆能力的智能体RAG系统。它涵盖了从基础RAG到高级多智能体协作的进阶路径,适用于需要构建复杂、可靠AI应用的企业级开发场景。
AI 深度解读
这是什么
jamwithai/production-agentic-rag-course 是一个基于 Python 的开源教育项目,旨在通过构建一个完整的“arXiv 论文策展人”(arXiv Paper Curator)系统,教授如何从零开始构建生产级的现代 AI 系统。该项目不仅仅是一个简单的 RAG(检索增强生成)演示,而是一个涵盖基础设施、数据管道、搜索算法、混合检索、LLM 集成及智能体架构的完整工程课程。
项目采用分周(Week 1-7)的渐进式学习路径,最终交付一个具备移动端访问能力(通过 Telegram Bot)、支持流式响应、拥有完整监控和缓存机制的生产级研究助手。其核心理念是“先掌握搜索基础,再引入 AI 增强”,区别于市面上许多直接跳入向量搜索的教程,该项目强调工业界最佳实践。
解决的问题
当前许多 RAG 教程或开源项目存在以下痛点,本项目旨在解决这些问题:
- 忽视搜索基础:大多数教程直接从向量数据库和嵌入模型入手,忽略了传统关键词搜索(如 BM25)在精确匹配和过滤方面的优势。本项目强调“基础优先”,先建立坚实的关键词搜索地基,再叠加语义理解。
- 缺乏生产级工程实践:许多示例代码缺乏健壮性,未包含错误重试、速率限制、数据清洗、监控追踪等工业界必需组件。本项目引入了 Docker、Airflow、Langfuse 等工具,展示如何构建高可用系统。
- 单一检索模式局限:仅依赖向量搜索往往导致语义漂移或无法处理专有名词。本项目通过混合检索(Hybrid Search)结合关键词与语义优势,提升召回率和准确率。
- 静态交互体验:传统 RAG 应用多为简单的 Web 界面。本项目通过引入 LangGraph 构建 Agentic RAG,实现查询重写、文档评分、幻觉防御等智能决策,并通过 Telegram Bot 提供跨平台移动访问。
核心功能
项目按周迭代,逐步构建以下核心功能模块:
-
基础设施搭建 (Week 1):
- 基于 Docker Compose 的全栈环境,包含 FastAPI (API 服务)、PostgreSQL 16 (元数据存储)、OpenSearch 2.19 (搜索引擎)、Apache Airflow 3.0 (工作流编排) 和 Ollama (本地 LLM)。
- 提供健康检查、自动文档生成及代码质量工具配置。
-
自动化数据管道 (Week 2):
- 集成 arXiv API,实现带速率限制和重试机制的论文抓取。
- 使用 Docling 进行科学 PDF 解析,提取结构化元数据和内容。
- 通过 Airflow DAGs 实现每日自动化的数据摄入流程。
-
生产级关键词搜索 (Week 3):
- 基于 OpenSearch 实现 BM25 算法搜索,支持复杂的查询 DSL、过滤和权重提升。
- 建立搜索评估指标(Precision, Recall),确保检索基础的有效性。
-
混合检索与智能分块 (Week 4):
- 实现基于章节的智能分块(Section-based Chunking),保留文档结构信息。
- 集成 Jina AI 嵌入模型,并配置降级策略。
- 使用 RRF (Reciprocal Rank Fusion) 融合算法,将关键词搜索与语义向量搜索结合,实现混合检索。
-
完整 RAG 流水线 (Week 5):
- 集成 Ollama 本地 LLM,确保数据隐私。
- 优化 Prompt 减少 80% 的 token 消耗,提升 6 倍响应速度。
- 实现基于 Server-Sent Events (SSE) 的流式响应。
- 提供基于 Gradio 的交互式 Web 界面。
-
生产监控与缓存 (Week 6):
- 集成 Langfuse 进行全链路追踪(Tracing),便于调试和性能分析。
- 使用 Redis 实现缓存机制,优化高频查询性能。
-
Agentic RAG 与移动接入 (Week 7):
- 基于 LangGraph 构建智能体,具备智能决策能力:评估检索策略、自动重写查询、检测域外问题以防止幻觉。
- 开发 Telegram Bot,实现跨设备的对话式 AI 访问。
- 提供完整的推理步骤追踪,增强系统透明度。
亮点 / 与同类相比
- 工业级架构而非玩具代码:不同于简单的
langchain脚本,本项目展示了如何组合 FastAPI、Airflow、OpenSearch 等成熟技术栈,符合企业级开发标准。 - “搜索优先”的方法论:明确反对“AI 第一”的盲目做法,强调 BM25 等经典算法在 RAG 系统中的基石作用,通过混合检索(Hybrid Search)平衡精确性与语义理解。
- 完整的生命周期覆盖:从数据获取(arXiv API)、处理(Docling)、存储(PostgreSQL/OpenSearch)、检索(BM25+Vector)、生成(Ollama)到监控(Langfuse)和部署(Docker),覆盖了 AI 工程的全生命周期。
- 智能体能力进阶:Week 7 引入的 Agentic RAG 不仅限于问答,还包含了查询重写、相关性评分和幻觉检测等高级逻辑,展示了 LLM 在复杂任务规划中的应用。
- 透明性与可调试性:通过 Langfuse 和 Telegram Bot 的推理步骤展示,解决了黑盒模型难以调试的问题,增加了用户对 AI 输出的信任。
适合谁用 / 上手
适合人群:
- AI 工程师/开发者:希望从理论走向实践,学习如何构建可维护、可扩展的生产级 RAG 系统。
- 数据工程师:对构建自动化数据管道(Airflow, PDF 解析)和搜索引擎优化(OpenSearch, BM25)感兴趣的技术人员。
- 进阶学习者:已经了解基础 RAG 概念,但希望深入理解混合检索、智能体工作流(LangGraph)和生产监控的高级用户。
上手指南:
-
环境准备:
- 操作系统:支持 Docker 的任意主流 OS。
- 硬件要求:8GB+ RAM,20GB+ 可用磁盘空间。
- 软件依赖:Python 3.12+, Docker Desktop (含 Docker Compose), UV 包管理器。
-
快速启动:
# 克隆仓库 git clone https://github.com/jamwithai/arxiv-paper-curator cd arxiv-paper-curator # 配置环境变量 (需填入 Jina Embeddings API Key 和 Langfuse Key) cp .env.example .env # 安装依赖 uv sync # 启动所有服务 docker compose up --build -d # 验证服务状态 curl http://localhost:8000/api/v1/health -
分周学习:
- 项目提供了每个周次的独立代码分支(如
week1.0,week2.0等)。 - 建议通过克隆特定分支并运行对应的 Jupyter Notebook(如
notebooks/week1/week1_setup.ipynb)进行逐步实践。 - 配合项目提供的详细博客文章(Blog Posts)理解每个组件的设计原理和生产洞察。
- 项目提供了每个周次的独立代码分支(如
查看原文 →github.com
