生产级实战 评测驱动 / Eval-Driven Python 主仓库 Qdrant · BM25 · Reranker

把 RAG 从 能跑的 Demo
修到 能上线的系统 // 从原理到上线,评测驱动的检索系统工程

这门课不教「什么是 RAG」。它解决一个更现实的问题——为什么你的 Demo 看起来能跑,真实用户一问就翻车,以及如何用评测把它修到能上线。

立即报名 查看完整大纲 ¥699 / 25–35 小时 · 含全套代码仓库
retrieval_pipeline.py — eval-driven build
CORE THESIS · 翻车现场

同一个 Demo,两种命运

naive RAG 在演示里总是体面的。问题出现在它面对真实用户的那一刻——而这正是大多数 RAG 课程戛然而止的地方。

DEMO · 演示态

看起来能跑

  • 挑好的问题,挑好的文档
  • 召回命中,回答流畅
  • 截图发群,老板满意
  • 「这不就上线了吗?」
PROD · 真实用户

一问就翻车

  • 召回不准:数字、专有名词、短 query 全跪
  • 引用错误:答案追溯不到来源
  • 上下文污染:塞太多反而更差
  • 回答幻觉:不知道也硬答
  • 成本爆炸:每个 query 都在烧钱

出路不是「再调调 prompt」,而是 用评测把它修到能上线——
可评测、可调优、可上线、可解释成本。

WHY ¥699 · 为什么这门课撑得住定价

不是名词百科,是工程交付

01

完整生产级代码仓库

ingestion、chunking、embedding、hybrid retrieval、rerank、answer generation、citation、eval、monitoring 完整链路,按模块分支逐步演进——每一章都有可运行代码。

ingestionchunkingembeddinghybrid retrievalrerankcitationevalmonitoring
02

可复现的评测体系

不只讲「效果好不好」,而是用 Recall@K、MRR、nDCG、Faithfulness、Answer Relevance、Context Precision 量化每一次改动。

03

真实失败案例拆解

从切分失败、召回失败、重排失败、引用错误、上下文污染、成本爆炸入手,教你定位问题,而不是只看成功 Demo。

04

成本 / 延迟 / 可观测性实战

讲清每个 query 的成本构成,用缓存、模型分层、batch、rerank 策略和上下文压缩把系统优化到真正可用。

05

复杂场景进阶

视觉 RAG、GraphRAG、代码图谱、Agentic RAG 作为高级增强,不喧宾夺主——重点讲什么时候值得上、怎么接主线、如何评测是否真有提升。

COURSE STRUCTURE · 三层结构

避免「什么都讲,但都不深

课程分三层。一条必学主线撑起生产级能力,增强模块按需取用,Bonus 拓展视野——主次分明,不堆料。

Layer 01 · 必学主线

生产级 RAG 主线

目标:做出一个可评测、可上线的 RAG 系统

数据处理chunkingembedding向量数据库混合检索重排生成引用评测成本优化监控权限
Layer 02 · 按需取用

高级增强模块

解决复杂场景,不是默认全上

视觉 RAGAgentic RAGMemoryGraphRAG
Layer 03 · 拓展视野

Bonus / 案例库

商业差异化与选型决策

代码图谱云托管图数据库选型ColBERT / ColPali 深入企业级部署案例工具链横评
FULL SYLLABUS · 课程大纲

围绕一个真实项目,逐模块演进

从文档解析到上线监控,每个模块都有明确产出物。点击展开任意模块查看小节。

开篇 · 认知校准免费试看
M0 开篇与认知校准RAG vs 微调 vs 长上下文 · 翻车现场 · 环境搭建 免费试看 +
0.1

RAG vs 微调 vs 长上下文

  • 百万 token 上下文时代,到底还要不要 RAG
  • RAG、微调、长上下文的取舍决策树
  • 为什么 naive RAG 会越来越不够用,但工程化 RAG 仍然重要
0.2

翻车现场:一个「能跑但不能用」的 Demo

  • 构建一个最简单的 RAG Demo
  • 现场暴露典型问题:召回不准、引用错误、上下文污染、回答幻觉
  • 引出课程主线:评测驱动,而不是凭感觉调参
0.3

课程项目与环境搭建

  • 贯穿全课的真实项目介绍
  • 技术栈:Python 主仓库、LLM API、Embedding、Qdrant、OpenSearch / BM25、Reranker、评测与可观测性工具
  • 本地开发环境与代码仓库搭建
产出一个可运行的 naive RAG baseline,为后续优化提供对照组。
第一层 · 生产级 RAG 主线模块 1–8 · 必学
M1 数据处理与文档解析RAG 质量的第一道门槛 +
1.1

文档解析的现实问题

  • PDF、网页、表格、Markdown、代码、扫描件各自的坑
  • 为什么「把文档读成纯文本」经常会破坏结构
  • 文档解析质量对召回和生成的连锁影响
1.2

文档结构保留

  • 标题、段落、表格、列表、页码、章节路径的保留
  • 元数据设计:source、page、section、timestamp、tenant、permission
  • 为后续过滤、引用和权限检索埋钩子
1.3

数据清洗与版本管理

  • 去重、噪声清理、编码问题
  • 文档更新、删除、增量同步
  • 数据版本与可回滚设计
产出一个可复用的 ingestion pipeline,能把多种文档转换成结构化中间格式。
M2 Chunking 与上下文化切分被低估的胜负手 +
2.1

Chunking 策略全景

  • 固定窗口、递归切分、语义切分、基于结构的切分
  • chunk size、overlap、section boundary 的实际取舍
  • 为什么「越大越全」和「越小越准」都不总是对
2.2

Contextual Retrieval

  • 给每个 chunk 补充上下文,解决「这段在讲谁」的问题
  • 成本、延迟、缓存策略
  • 适合场景:长文档、章节依赖强、指代多的资料
2.3

Late Chunking

  • 先整体编码,再生成 chunk-level 表示
  • 解决的核心问题:切碎后丢失长距离语义依赖
  • 与普通 chunking / contextual chunking 的对比
  • 与 5.6 的边界:这里解决「切分时不要过早丢上下文」,而非直接进入 late interaction 检索
2.4

用评测选择切分方案

  • 不靠主观感觉判断 chunk 好坏
  • 用 Recall@K、MRR、nDCG 对不同切分方案做 A/B 实验
  • 建立第一组检索质量 baseline
产出三套 chunking 策略实现,以及一份 chunking 对检索质量影响的实验报告
M3 Embedding 与向量化模型选型不是看排行榜 +
3.1

稠密向量原理:够用就行

  • embedding 在 RAG 中到底负责什么
  • 相似度、归一化、维度、批处理
  • 为什么 embedding 模型选错会导致「看起来相关,实际答不上」
3.2

模型选型实测

  • OpenAI Embedding、BGE-M3、Cohere Embed
  • 常见中文 / 多语言开源模型
  • 托管 API vs 自部署的成本、延迟和运维取舍
3.3

中文场景的特殊问题

  • 中英文混合、缩写、专有名词、代码、表格字段
  • query 与文档语言不一致时的处理
  • 多语言检索的评测方式
3.4

工程细节

  • embedding batch、失败重试与断点续跑
  • embedding 版本升级与向量重建
  • 冷启动与增量更新
产出一个可切换 embedding provider 的向量化模块,以及一份模型选型对比表
M4 向量数据库与索引实战以 Qdrant 为主线 +
4.1

为什么选择 Qdrant 做主线

  • Qdrant 的 collection、payload、filter、HNSW、hybrid query 能力
  • 与 Milvus、pgvector、OpenSearch 的取舍
  • 什么时候 pgvector 已经足够,什么时候需要专用向量数据库
4.2

Collection 与 Payload 设计

  • 多租户、多文档、多版本数据建模
  • metadata filter 的设计
  • permission-aware retrieval 的数据基础
4.3

HNSW 与索引参数调优

  • recall、latency、memory 的三角权衡
  • 索引参数如何影响线上表现
  • 不同规模数据下的调参策略
4.4

数据生命周期

  • 新增、更新、删除、重建索引
  • 文档版本管理
  • 向量库与原始文档存储的一致性
产出一个支持 metadata filter、增量更新和版本管理的 Qdrant 检索底座
M5 检索核心:混合检索、重排与 Late Interaction本课核心模块 · 知道检索为什么失败,以及怎么修 +
5.1

稠密检索的局限

  • 什么 query 稠密检索容易查不准
  • 数字、专有名词、短 query、精确匹配、否定条件的坑
  • 用失败案例定位召回问题
5.2

稀疏检索:BM25 与 SPLADE

  • BM25 为什么仍然重要
  • SPLADE 的优势与代价
  • dense 与 sparse 分别补什么短板
5.3

混合检索与 RRF 融合

  • dense + sparse 的双路召回
  • RRF 融合的实现与调参
  • 与单路检索的评测对比
5.4

OpenSearch 方案

  • 什么时候使用 OpenSearch 作为混合检索引擎
  • OpenSearch 与 Qdrant 的组合方式
  • 企业搜索场景中的现实取舍
5.5

Reranker 重排

  • Cross-encoder rerank 的原理与价值
  • Cohere Rerank、Voyage rerank、开源 reranker 的选型思路
  • rerank top-k、延迟、成本、质量的权衡
5.6

多向量 / Late Interaction 检索:统一概念锚点

  • 为什么单向量 dense retrieval 会丢失细粒度匹配信息
  • 核心思想:保留 token / patch 级表示,检索后期再做细粒度匹配
  • ColBERT / ColBERTv2 作为文本场景代表
  • 与 reranker、与 2.3 Late Chunking 的边界辨析
  • 高精度场景的价值:法律、金融、科研、复杂文档检索
5.7

三种检索范式的组合框架

  • dense / sparse / late interaction 各自解决什么问题
  • 如何根据 query 类型动态选择检索策略
  • 不要为了炫技把所有策略都堆上去
产出一个支持 dense + sparse + rerank 的混合检索系统,并能用评测证明它比 baseline 更好。
M6 生成与上下文工程让模型基于证据回答 +
6.1

Context 组装

  • 召回结果排序、去重、压缩、分组
  • 长上下文不是越塞越好
  • 如何避免无关上下文污染回答
6.2

引用溯源与防幻觉

  • citation 机制设计
  • chunk-level citation vs document-level citation
  • 回答必须能追溯到来源
6.3

RAG Prompt 工程

  • RAG 场景下的系统提示词设计
  • 如何约束模型「不知道就说不知道」
  • 常见错误:过度依赖 prompt,而不修检索
6.4

生成模型选型

  • 通用模型 vs RAG 优化模型
  • Command A / R 系列、GPT、Claude、Gemini、开源模型的取舍
  • 同时看:忠实度、引用能力、延迟、成本、中文表现
产出一个支持引用溯源、上下文去重、回答约束的 RAG answer pipeline
M7 评测驱动开发RAG 从玄学变工程 · 本课最值钱模块 +
7.1

建立评测集

  • golden set 是什么
  • 如何从真实用户问题构建评测集
  • 单跳、多跳、精确事实、综合总结问题的覆盖
7.2

检索指标

  • Recall@K、Precision@K、MRR、nDCG、Context Precision
  • 如何判断「召回失败」还是「生成失败」
7.3

生成质量指标

  • Faithfulness、Answer Relevance、Context Relevance、Citation Accuracy
  • 人工标注与 LLM-as-a-judge 的结合
7.4

RAGAS 与自定义评测

  • RAGAS 实操
  • 为什么不能只依赖一个自动评测分数
  • 生产参考线:忠实度、相关性、上下文精度的目标区间
7.5

评测驱动迭代

  • 每改一个组件,都跑同一套评测
  • chunking、embedding、retrieval、rerank、prompt 的 A/B 实验
  • 如何写一份 RAG 调优报告
7.6

漂移监控与回归测试

  • 冻结 golden set,定期回归测试
  • 文档变化、模型升级、embedding 升级后的质量监控
7.7

Evaluator Paradox

  • LLM 当裁判的偏差
  • 多裁判集成、人工抽检、争议样本复核
  • 生产中如何抽查 5% 高风险轨迹
产出一套完整 RAG eval harness,支持自动跑评测、输出对比报告、定位问题环节。
M8 生产化与优化从能跑到能上线 +
8.1

延迟拆解

  • 检索、重排、生成、网络、数据库各环节延迟
  • p50 / p95 / p99 的意义
  • 如何定位瓶颈
8.2

成本优化

  • 每 query 成本拆解
  • context caching、semantic cache、模型分层
  • embedding / rerank batch、top-k 与 token 成本控制
8.3

可观测性

  • OpenTelemetry 接入
  • Langfuse / Arize Phoenix 等 tracing 工具
  • 记录 query、retrieved chunks、rerank scores、answer、latency、cost
8.4

安全与权限

  • 多租户数据隔离、permission-aware retrieval
  • 敏感信息过滤
  • prompt injection 与检索注入风险
8.5

部署与运维

  • 本地开发到云端部署
  • 环境变量、密钥管理、日志、监控
  • 灰度发布与回滚
产出一个具备日志、trace、成本统计、权限过滤和基础安全策略的 RAG 服务
第二层 · 高级增强模块模块 9–11 · 按需取用
M9 多模态 / 视觉 RAG复杂 PDF、图表、扫描件、财报、研报、合同检索 +
9.1

OCR-first 范式的问题

  • 为什么「先 OCR 再切块」会丢失版式、表格和图表信息
  • 哪些场景 OCR 仍然足够
  • 不要把视觉 RAG 神化成 OCR 的全面替代品
9.2

视觉检索范式:Late Interaction 的延伸

  • 回到 5.6 的统一概念:保留更细粒度的多向量表示,再后期匹配
  • ColPali / ColQwen:把 late interaction 从文本 token 扩展到页面图像 / patch
  • 直接对页面截图做检索的优势与代价
  • 与 OCR + 文本检索 baseline 的评测对比
9.3

多模态 Embedding 与 Reranker

  • 文本、图像、表格、页面截图进入同一检索系统
  • Qwen-VL、ColPali、CLIP-like 方案的适用边界
  • 多模态 rerank 的价值
9.4

实战案例

  • 财报问答、研报图表检索、扫描合同问答
  • 页面级 citation 与截图证据返回
9.5

代价权衡

  • 存储成本、推理延迟、页面切分粒度
  • 什么时候值得上视觉 RAG
产出一个视觉文档检索 demo,并能和 OCR + 文本检索 baseline 做评测对比。
M10 查询理解、Agentic RAG 与记忆系统判断何时普通 RAG 不够,以及如何避免成本失控 +
10.1

查询理解

  • Query rewrite、HyDE、多查询扩展、子问题分解
  • 根据 query 类型选择检索策略
10.2

Agentic RAG

  • 从「一次检索就生成」到「思考 → 检索 → 观察 → 再思考」
  • ReAct 式检索循环
  • Self-RAG、Corrective RAG、Adaptive RAG 的核心思想
  • 简单问题不要绕远路:动态路由与预算控制
10.3

Agent Memory

  • 为什么「把全部对话历史塞进上下文」不可持续
  • 分层抽取 + 多信号检索的记忆架构
  • 记忆在时序查询、多跳推理、跨会话个性化中的作用
  • 用 Qdrant 做 agent memory 的最小实现
10.4

Agentic 系统评测

  • trajectory tracing、工具调用是否必要
  • 检索次数、成本、答案质量的联合评估
  • 什么时候 agent 让系统更好,什么时候只是更贵
产出一个带 query routing、子问题分解和基础 memory 的 Agentic RAG demo,并接入评测体系。
M11 GraphRAG 与代码图谱结构化关系检索 · 差异化高级模块 +
11.1

为什么向量检索不够

  • 多跳推理、关系查询、聚合类问题
  • 「A 和 B 的共同投资人是谁」这类 query 为什么向量检索天然吃力
11.2

知识图谱最小闭环

  • ontology:实体、关系、属性设计
  • 用 LLM 做实体抽取与关系抽取,schema 约束与抽取一致性
  • entity resolution:同一实体不同表述如何合并
11.3

Neo4j 实战

  • 为什么用 Neo4j 做主线
  • Cypher 基础:MATCH、多跳、聚合、路径查询
  • 把三元组写入图数据库,向量 + 图混合检索
11.4

GraphRAG 检索与融合

  • 微软 GraphRAG 思路:社区检测、分层摘要、global / local query
  • 先向量召回再图扩展 / 先图定位再向量补充
  • 把图检索接入模块 7 的评测体系
11.5

代码图谱:代码库 RAG 的差异化方案

  • 为什么代码不能按普通文本切块
  • AST / Tree-sitter 解析代码
  • 函数、类、import、调用关系、依赖关系抽取
  • 构建 call graph 与 dependency graph
  • 应用:代码库问答、影响面分析、coding agent 精准上下文
11.6

图方案选型决策树

  • 什么时候不上图 / 上知识图谱 / 上代码图谱
  • 什么时候自建 Neo4j,什么时候考虑托管图数据库
产出一个最小可用 GraphRAG demo,以及一个代码图谱检索 demo
第三层 · Bonus / 企业案例库拓展视野
B1–4 Bonus 案例库云托管图数据库选型 · 高精度检索专题 · 工具链横评 · 失败案例库 +
B1

云托管图数据库选型

  • AWS Neptune:Gremlin、openCypher、Neptune Analytics、Bedrock 生态集成
  • GCP Spanner Graph:基于 GQL 的图查询
  • Neo4j vs Neptune vs Spanner Graph:成本、运维、扩展性、厂商锁定
  • 国内团队与出海团队的云选择差异
B2

高精度检索专题:5.6 的深入版

  • ColBERT / ColBERTv2 深入:索引、压缩、MaxSim、ANN 召回与工程优化
  • late interaction 与 cross-encoder:何时粗排、何时仍需 reranker 精排
  • 法律、金融、科研场景中的高精度检索架构
  • 如何接回模块 7 的评测体系证明它真的更值
B3

工具链横评

  • Qdrant / Milvus / pgvector / OpenSearch
  • RAGAS / DeepEval / 自定义 eval harness
  • Langfuse / Arize Phoenix / OpenTelemetry
  • 不同 embedding / reranker / generator 的选型表
B4

失败案例库

  • chunking 导致召回失败 · embedding 升级导致质量退化
  • rerank top-k 设置错误导致延迟暴涨 · citation 错误导致信任崩塌
  • 权限过滤漏掉导致数据泄露风险 · agent 过度检索导致成本不可控
Capstone · 综合项目4–6 小时 · 从零搭建可上线 RAG
CAP 从零搭建一个可上线的 RAG 应用五个阶段 · 故意暴露问题 → 评测量化提升 → 生产化 +
P1

阶段 1 · Naive RAG Baseline

  • 完成最小可用版本,故意暴露问题
  • 建立第一版评测集
P2

阶段 2 · 检索质量优化

  • 改进 chunking、切换 embedding
  • 加入 hybrid retrieval 与 reranker
  • 用评测报告量化提升
P3

阶段 3 · 生成与引用优化

  • 上下文去重与压缩、citation 机制
  • hallucination guardrail、回答质量评测
P4

阶段 4 · 生产化

  • tracing、成本统计、缓存
  • 权限过滤、部署与回归测试
P5

阶段 5 · 高级增强选做

  • 视觉 RAG / Agentic RAG / GraphRAG / 代码图谱
交付完整代码仓库 · 架构图 · 评测报告 · 调优 checklist · 部署文档 · 简历 / 作品集项目描述模板
WHAT YOU SHIP · 学完之后你会交付什么

不是听完,是交付出来

01

完整生产级 RAG 应用

覆盖全链路、可运行、可部署。

02

自动化评测脚本

一套可自动跑评测、出对比报告的 eval harness。

03

可复现 golden set

标准答案、相关文档、相关 chunk、评分维度齐备。

04

RAG 调优 Checklist

从解析到监控逐项排查的工程清单。

05

成本 / 延迟 / 召回实验报告模板

量化每一次架构改动的收益。

06

简历级项目描述与架构图

可写进简历、作品集,面试能讲清楚。

FIT CHECK · 适合与不适合

先确认这门课是为你做的

✓ 适合你,如果——
  • 有 Python 基础的后端 / 全栈工程师
  • 做过 LLM API 调用,但 RAG 效果不稳定
  • 想把 RAG 用到知识库、文档问答、企业搜索、客服、研报 / 合同 / 代码库问答等真实产品
  • 想用一个完整项目作为简历、作品集或商业项目基础
✕ 不适合你,如果——
  • 完全没有编程基础的纯小白
  • 只想听概念、不想写代码和跑实验
  • 期待「一套万能 Prompt 解决所有 RAG 问题」
  • 不愿意理解评测、排错、成本和工程取舍
先修要求 · Prerequisites
12模块
主线 8 + 增强 3 + Bonus
25–35小时
主线 12–16h · 增强 6–8h
6
检索 / 生成评测指标
1
可写进简历的生产级项目
ENROLL · 一句话版本

把 RAG 从 Demo
修到 生产可用

从文档解析、混合检索、重排、引用溯源,到评测驱动、成本优化和上线监控,最终交付一个可复现、可评测、可写进简历的生产级 RAG 项目。

立即报名 · ¥699 再看一遍大纲