目录

Mother of AI Project:7 周渐进式 RAG 教学,反 AI-first 潮流的「先 BM25 后向量」路线

Mother of AI Project:7 周渐进式 RAG 教学,反 AI-first 潮流的「先 BM25 后向量」路线

这项目在回答什么

jamwithai/production-agentic-rag-course(仓库 jamwithai/production-agentic-rag-course)在 6.5K stars 的热度下,回答的不是"怎么搭 RAG"——它回答的是一个更根本的工程问题:“RAG 应该从哪里开始?”

当前 AI-first 潮流的答案是"先向量数据库"——任何教程都从 Pinecone / Weaviate / Qdrant 开始。但这个项目走了一条反潮流的路:

“先 BM25 关键词搜索打牢基础,再用向量做混合检索” ——[The Professional Difference] 段落原话

这个反 AI-first 的教学主张,是项目区别于其他 RAG 教程的地方。在 7 周渐进式课程里,每周的技能都建立在前一周的基础上:

  1. Week 1:基础设施(Docker + FastAPI + OpenSearch + Airflow)
  2. Week 2:arXiv 论文自动抓取
  3. Week 3:BM25 关键词搜索
  4. Week 4:混合搜索(关键词 + 向量)
  5. Week 5:完整 RAG + 本地 LLM
  6. Week 6:Langfuse 监控 + Redis 缓存
  7. Week 7:Agentic RAG + LangGraph + Telegram Bot

7 周课程全景

关键观察:每个 Week 都建立在前一个的基础上,没有任何跳跃。对比多数教程"Week 1 直接上 LangChain + Pinecone + OpenAI"的速成路径,Mother of AI Project 慢得多,但生产可用的概率高得多。

教学法主张:「先 BM25 后向量」

这是整个项目最值得展开的设计取舍。

主流 AI-first 路径

教程:Day 1 → 安装 Pinecone → 灌 embeddings → 写 RAG 链 → 调用 OpenAI
问题:学员不理解向量空间、不理解 hybrid search 的边界
       生产化时发现:纯向量检索在精准匹配场景(型号、ID、专业术语)效果差

Mother of AI Project 路径

Week 3:纯 BM25 关键词搜索
  → 学员理解"为什么 OpenSearch 倒排索引够用"
  → 学员理解"BM25 的 TF-IDF 改进与边界"
Week 4:在 BM25 之上加向量做混合检索
  → 学员理解"混合检索 = 关键词兜底 + 向量增强"
  → 学员理解"什么时候该用哪种"

为什么先 BM25 更稳?

场景纯 BM25纯向量混合
论文 ID 2301.12345 精准匹配✓✓✓✓✓✓
同义词替换 “RAG” → “检索增强生成”✓✓✓✓✓✓
复杂语义 “对比 transformer 和 SSM”✓✓✓✓✓✓
长尾查询(小众专业术语)✓✓✓✓

纯向量检索在精准匹配和长尾查询上有系统性缺陷。Mother of AI Project 让学员从 BM25 出发建立"什么时候纯向量不够用"的肌肉记忆,这是多数 AI-first 教程给不出的工程直觉。

技术栈:成熟工业级选择

Week引入的技术选择理由
1Docker Compose + FastAPI + PostgreSQL + OpenSearch + Airflow全部是"无聊但稳定"的工业选择
2arXiv API + 论文解析数据源真实(非 toy dataset)
3OpenSearch BM25与生产搜索引擎同款
4智能 chunking + 向量嵌入在 BM25 之上做语义增强
5本地 LLM(Ollama/vLLM)+ Gradio隐私 + 可控
6Langfuse + Redis可观测性 + 性能优化
7LangGraph + Telegram Bot智能体编排 + 移动端

整套栈的选型逻辑

  • 不用 LangChain 做编排(Week 5-6 用 LangChain 调 LLM,但 Week 7 的 Agent 编排用 LangGraph)——避免锁死在一家框架
  • 不用托管向量数据库(Pinecone/Weaviate Cloud)——用 OpenSearch 自管
  • 不用云 LLM(Week 5 强调 local LLM)—— 隐私 + 成本可控
  • 不用大模型评测框架——用 Langfuse 做真实 trace

这套栈是给严肃生产项目用的,不是 demo 项目。学完可以直接迁移到生产环境。

Week 7 的 Agentic RAG 创新

Week 7 是项目的"毕业设计"——把前面 6 周的能力打包成智能体:

核心架构(LangGraph 流程):

5 个关键设计点

  1. Query Rewriting:用户问题模糊时先改写再检索(避免"差问题"导致"差答案")
  2. Document Grading:检索结果用 LLM 评估相关性,过滤掉无关文档
  3. Out-of-Domain Detection:出域时主动拒绝回答,防止幻觉
  4. Telegram Bot 接入:把 RAG 能力带到移动端
  5. Full Trace 透明:每步决策可调试、可审计、可重放

这套设计把"标准 RAG 链"升级成了带反思的 RAG Agent——检索不到相关文档时重新检索,出域时拒绝回答。

适合谁、不适合谁

适合

  • 想系统性学 RAG 但被零散教程搞晕的初中级 AI 工程师
  • 想从 demo 跨越到生产的独立开发者
  • 想给团队培训 RAG 工程实践的Tech Lead
  • 对"先 BM25 后向量"反潮流路线有共鸣的实用主义者

不适合

  • 想 1 小时搭个 RAG demo 的人(这个项目要 7 周)
  • 只关心最新论文 SOTA 的研究者(这里是工程实践)
  • 不愿读英文 README 的人(README 24KB,全英文)

怎么用这个项目

自学路径(建议):

  1. Clone 仓库,跟着 Week 1 README 走完基础设施搭建
  2. 每个 Week 花 1 周做实战(约 10-20 小时)
  3. 配合 jamwithai.substack.com 博客读理论
  4. 7 周后应能独立搭建生产级 RAG 系统

培训路径(团队用):

  1. 把 7 周拆成 7 次团队内部分享
  2. 每次分享对应一个 Week + 一次 Code Review
  3. Week 7 之前完成 Group Project
  4. 7 周后全团队具备 RAG 工程能力

改造路径(直接用):

  • 直接用 Week 5-7 的代码做 arXiv 论文助手
  • 把 arXiv 数据源换成你自己的领域数据(论文 / 文档 / 工单)
  • 把 Telegram Bot 换成 Slack / 飞书 / Discord
  • 3 周内可上线一个生产级领域问答系统

仓库元数据

维度取值验证来源
仓库全名jamwithai/production-agentic-rag-courseGitHub API
Stars6456GitHub API(2026-06-03)
LanguagePythonGitHub API
创建时间2025-08-06GitHub API
最后更新2026-06-03 04:39 UTCGitHub API
课程长度7 周渐进式README
技术栈Python 3.12+ / FastAPI 0.115+ / OpenSearch 2.19 / Docker Compose / Airflow / LangGraph / Langfuse / Redis / GradioREADME
配套博客jamwithai.substack.comREADME

参考资源