Python AI与Agent ✅ 推荐 ★ 6.4k MIT

Production Agentic RAG Course

一套 7 周的生产级 Agentic RAG 实战课程,从零构建 arXiv 论文智能检索与问答系统

📅 2026-06-03 🔗 jamwithai/production-agentic-rag-course ⭐ 综合评分:★★★★☆

🎯 为什么需要它

大多数 RAG 教程停留在「能跑通」的层面——用 LangChain 调个 API、接个向量数据库、做个简单问答就完事了。但生产环境的 RAG 系统要复杂得多:需要混合检索、缓存优化、可观测性、自动化流水线……

这个项目的价值在于:它不是教你「怎么调 API」,而是教你怎么搭建一套可以上生产的 RAG 系统

一句话定位

如果你想知道「RAG 从 Demo 到生产到底差在哪」,这个课程用 7 周时间、一个完整项目,把每个环节都拆开讲透了。

✅ 核心优势

🏗️ 课程架构(7 周路线图)

Week 1: 基础设施搭建
FastAPI + PostgreSQL + OpenSearch + Airflow + Ollama,Docker Compose 一键启动
Week 2: 数据摄入管线
arXiv API 对接、Docling PDF 解析、Airflow DAG 自动化调度
Week 3: 关键词搜索(BM25)
OpenSearch BM25 搜索实现,这是很多教程跳过的基础
Week 4: 分块与混合搜索
Section-aware 分块、Jina AI Embedding、RRF 融合检索
Week 5: 完整 RAG 管线
Ollama LLM 集成、SSE 流式响应、Gradio Web UI
Week 6: 生产监控与缓存
Langfuse 链路追踪、Redis 缓存(150-400x 加速)
Week 7: Agentic RAG
LangGraph Agent、Telegram Bot 集成

技术栈一览

组件用途状态
FastAPIREST API + 自动文档✅ 就绪
PostgreSQL 16论文元数据存储✅ 就绪
OpenSearch 2.19混合检索引擎(BM25 + 向量)✅ 就绪
Apache Airflow 3.0工作流编排✅ 就绪
Jina AIEmbedding 生成✅ 就绪
Ollama本地 LLM 推理✅ 就绪
Redis高性能缓存✅ 就绪
LangfuseRAG 管线可观测性✅ 就绪

开发工具:UV、Ruff、MyPy、Pytest、Docker Compose

项目结构

arxiv-paper-curator/
├── src/                    # 主应用代码
│   ├── routers/            # API 端点(search, ask, papers)
│   ├── services/           # 业务逻辑(opensearch, ollama, agents, cache)
│   ├── models/             # 数据库模型(SQLAlchemy)
│   ├── schemas/            # Pydantic 校验
│   └── config.py           # 环境配置
├── notebooks/              # 每周学习材料(week1-7)
├── airflow/                # Airflow DAG 定义
├── tests/                  # 测试套件
└── compose.yml             # Docker 编排

🚀 快速上手

前置条件

5 步启动

# 1. 克隆项目
git clone https://github.com/jamwithai/production-agentic-rag-course.git
cd production-agentic-rag-course

# 2. 配置环境变量
cp .env.example .env
# 编辑 .env,填入 Jina AI API Key 和 Langfuse Key

# 3. 安装依赖
uv sync

# 4. 启动所有服务
docker compose up --build -d

# 5. 验证服务
curl http://localhost:8000/api/v1/health

API 端点

端点方法说明周次
/healthGET健康检查Week 1
/api/v1/papersGET论文列表Week 2
/api/v1/searchPOSTBM25 关键词搜索Week 3
/api/v1/hybrid-search/POST混合搜索(BM25 + 向量)Week 4
/api/v1/askPOSTRAG 问答Week 5
/api/v1/streamPOST流式 RAG 问答(SSE)Week 5

交互式 API 文档:http://localhost:8000/docs

每周学习入口

# 启动对应周的 Notebook
uv run jupyter notebook notebooks/week1/week1_setup.ipynb
uv run jupyter notebook notebooks/week3/week3_opensearch.ipynb
uv run jupyter notebook notebooks/week4/week4_chunking_hybrid_search.ipynb
# ... 以此类推

📦 适用场景

✅ 最佳场景
  • 想系统学习生产级 RAG 架构
  • 需要构建学术论文/文档检索系统
  • 团队需要统一的 RAG 技术认知
  • 对数据隐私有要求(本地 LLM)
  • 想了解从 Demo 到生产的完整链路
❌ 不适合场景
  • 只需要快速跑通一个 RAG Demo
  • 机器配置低于 8GB RAM
  • 不想用 Docker(整个项目重度依赖)
  • 只关心 LangChain 生态(本项目偏原生实现)
  • 需要多语言支持(目前仅英文论文)

⚠️ 已知坑

🕳️ 服务启动慢

Docker Compose 启动后需要等待 2-3 分钟让所有服务就绪,尤其是 OpenSearch 和 Airflow。不要急着调 API,先用 docker compose ps 确认状态。

🕳️ 端口冲突

项目占用多个端口:8000(FastAPI)、8080(Airflow)、5432(PostgreSQL)、9200(OpenSearch)、5601(OpenSearch Dashboards)、11434(Ollama)、7861(Gradio)。如果这些端口被占用,需要先停掉对应服务。

🕳️ 内存不足

OpenSearch + PostgreSQL + Airflow + Ollama 同时运行非常吃内存。Docker Desktop 默认分配的 2GB 内存远远不够,建议至少分配 8GB。如果服务频繁 OOM,检查 Docker 内存设置。

🕳️ API Key 配置

Jina AI Embedding 需要免费 API Key(Week 4+),Langfuse 需要注册获取 Key(Week 6+)。.env.example 中有说明,但容易漏掉。建议在 Week 1 就把所有 Key 准备好。

🕳️ 完全重置

如果环境搞坏了,用这个命令彻底重置:docker compose down --volumes && docker compose up --build -d。注意 --volumes 会删除所有数据。

🆚 竞品对比

维度本项目LangChain 教程RAGFlowDify
定位学习课程 + 完整项目框架文档RAG 引擎LLM 应用平台
教学深度★★★★★ 每周拆解★★★ 片段式★★ 黑盒★★ 低代码
生产就绪度★★★★ 接近生产★★ 需大量补充★★★★ 可直接用★★★★ 可直接用
灵活性★★★★★ 完全可控★★★★ 框架灵活★★★ 受限于引擎★★ 低代码限制
上手难度中等(需 Docker)中等
本地部署✅ Ollama✅ 可选

选择建议:想深入理解 RAG 原理选本项目;想快速搭应用选 Dify/RAGFlow;想灵活定制选 LangChain。

🌍 生态社区

指标数据
GitHub Stars⭐ 6,400+
Forks🍴 1,500+
Commits39 次提交
LicenseMIT
Python 版本3.12+
配套博客jamwithai.substack.com

项目作者在 Substack 上有配套博客文章,每周内容都有详细的文字讲解,适合配合 Notebook 一起学习。

💡 引入评估

综合评分

上手难度
3/5
文档完善度
4.5/5
社区活跃
4/5
代码质量
4.3/5
实用价值
4.5/5

值得引入吗?

结论:★★★★☆ 推荐学习

如果你的目标是深入理解生产级 RAG 系统的全貌,这个课程是目前开源社区里最完整的实战教程之一。7 周的渐进式设计让你不会被一次性信息淹没,每周都有可运行的成果。

但它不是一个可以直接用的 RAG 产品——它是一个学习项目。学完之后你还需要根据自己的业务场景做大量定制工作。

📝 个人备注