跳转至
RAG专题概览学习大纲

KnowForge RAG Platform — 学习大纲

本目录包含 20 章系统化学习内容,并在第 04 章之后安排一个 Vibe Coding 实践单元。这个实践单元先复用已经学过的 Milvus 索引和混合检索知识,再用 Codex 完成一个简易 RAG。

如何使用本文档

  • 第一次学习:先完成 01-04,建立 RAG、LangChain 和 Milvus 基础;再完成实践单元,把混合检索、Reranker 和 LLM 串成一条可运行链路;之后继续学习 05-11、12-13 和 14-20
  • 有经验的开发者:先看 内容结构表 速览全貌,再挑薄弱章节精读
  • 赶时间的项目汇报准备:优先看 01 → 02 → 03 → 04 → 实践单元 → 05 → 08 → 10 → 11

主次分层

这套学习内容不要求初次阅读把所有内容都学到同一深度。推荐按四层吸收:

层级 内容范围 学习要求
P0 基础与实践 01、02、03、04、实践单元 首轮必须掌握,能用 AI 完成一条混合检索 RAG 闭环。
P0 主链路 05、06、07、08、09、10、11 首轮必须掌握,能说明企业级在线问答闭环。
P1 核心工程能力 12、13、14、15、16、17、18 第二阶段掌握,能说明应用入口、Web 异步、入库、版本、隔离、评测和测试。
P2 企业化增强 19、20、多场景、可选 LangSmith Trace、本地 Evaluation、生产部署、Docker 交付深化、容量评估、企业 overlay、资料治理 项目亮点,体现企业级项目经验。
P3 扩展方向 OCR/VLM、GraphRAG、LlamaIndex 入库替代 知道边界和规划即可,不放进首轮主线。

详细拆分见下方 内容总览 表格。

学习路线图

flowchart LR
    subgraph Phase1["第一阶段:基础概念"]
        L01["01 项目概述<br/>Docker环境搭建"]
        L02["02 RAG 核心<br/>概念深入"]
    end

    subgraph Phase2["第二阶段:核心 RAG 链路(P0)"]
        L03["03 LangChain<br/>生态系统 ⚠️"]
        L04["04 Milvus 索引<br/>机制与基本操作"]
        L045["第二阶段实践<br/>Vibe Coding 简易混合检索 RAG"]
        L05["05 意图<br/>分类"]
        L06["06 检索策略与<br/>动态计划"]
        L07["07 查询改写<br/>与变体生成"]
        L08["08 Milvus<br/>混合检索"]
        L09["09 QAService<br/>核心编排"]
        L10["10 RAG Pipeline<br/>主流程"]
        L11["11 Prompt 工程<br/>与 Profile"]
    end

    subgraph Phase3["第三阶段:Web 服务基础设施(P1)"]
        L12["12 FastAPI 与<br/>异步 Web 框架"]
        L13["13 应用入口与<br/>环境前置校验"]
    end

    subgraph Phase4["第四阶段:治理与运维(P1-P2)"]
        L14["14 知识库<br/>版本管理"]
        L15["15 数据隔离<br/>与多租户"]
        L16["16 文档入库<br/>与索引链路"]
        L17["17 RAG 回归验收<br/>与入库质量"]
        L18["18 测试与<br/>接口验收"]
        L19["19 观测 Trace<br/>与生产化"]
        L20["20 Docker<br/>交付深化"]
    end

    L01 --> L02 --> L03 --> L04 --> L045 --> L05 --> L06 --> L07 --> L08 --> L09 --> L10 --> L11 --> L12 --> L13 --> L14 --> L15 --> L16 --> L17 --> L18 --> L19 --> L20

    style L03 fill:#FFFBEB,stroke:#D97706,stroke-width:2px
    style L045 fill:#FEF3C7,stroke:#D97706,stroke-width:2px
    style Phase1 fill:#EFF6FF,stroke:#3B82F6,stroke-width:2px
    style Phase2 fill:#FEF2F2,stroke:#DC2626,stroke-width:2px
    style Phase3 fill:#ECFDF5,stroke:#059669,stroke-width:2px
    style Phase4 fill:#F5F3FF,stroke:#7C3AED,stroke-width:2px

路线图的设计逻辑:先学习 RAG、LangChain 和 Milvus 基础,再在第二阶段实践单元中用 Vibe Coding 把 Dense + BM25 + Reranker + LLM 串起来;后续 05-11 再逐层拆解企业级意图、检索计划、改写、编排和 Prompt。20 章主体仍遵循"基础概念 → 框架基础 → 核心链路 → Web 基础设施 → 治理运维"的递进。

第二阶段实践单元(第 04 章之后 · 1 天):先用结构化需求让 Codex 分析和规划,再分阶段完成文档入库、Milvus 2.5+ Dense HNSW + BM25 混合检索、BGE Reranker、LLM 生成、测试和 Docker 验收。它使用单一场景,暂不展开意图网关、Redis、版本治理、评测和 Trace。完成后,你能把前面学过的 Milvus 知识落实为一条可运行链路,并掌握 Vibe Coding 的基本工作方法。

第一阶段(基础概念 · 2 章):01 和 02 先建立心智模型。01 先说明 Docker/Compose 运行底座,再进入环境部署,让你跑通项目、看到效果;02 深入理解 Embedding、向量检索、混合检索这些 RAG 最核心的概念。学完这两章,你至少知道 RAG 是什么、为什么需要它,以及本项目为什么用 Docker 管理依赖。

第二阶段(核心 RAG 链路与实践 · 9 章 + 1 个实践单元,P0):这是学习内容的核心区。03 到 11 构成完整 RAG 问答数据流,实践单元负责连接知识和代码:LangChain 生态系统(03)→ Milvus 索引机制(04)→ Vibe Coding 实践 → 意图分类(05)→ 检索计划(06)→ 查询改写 + 变体(07)→ Milvus 混合检索(08)→ QAService 编排(09)→ Pipeline 主流程(10)→ Prompt 模板(11)。03 先打 LangChain 基础,04 说明 Milvus 底层操作,实践单元把混合检索和 Reranker 跑起来,后续内容再回到企业级实现逐层拆解。

离线构建在第二阶段怎么处理? 第二阶段会把离线知识库构建作为“检索前置背景”轻量说明:Milvus 里的 FAQ、文档 chunk 和向量数据,是由离线脚本提前构建好的。第二阶段不展开 rebuild_kb_version.py、质量门禁、版本激活、增量入库等工程细节,完整实现统一放到第 16 章说明。

设计意图:LangChain 放在 P0 最前面——先掌握模型调用、消息历史、Prompt、文档对象、切分器和 VectorStore 抽象,再在后续链路中看到它们被实际使用("查询变体用了结构化输出""QAService 用了 stream()"),形成"先学后用"的正向循环。

复杂度控制:一期主链路不引入 Python 本地 BM25 或 LlamaIndex QueryEngine。FAQ 与文档召回统一进入 Milvus Hybrid Search;Redis 只做 query embedding 和检索候选缓存,并通过 cache_epoch 绑定版本失效。RAGAS 只作为补充评测。这样可以先掌握一条完整企业 RAG 链路,再理解可选扩展。

第三阶段(Web 服务基础设施 · 2 章,P1):12 深入 FastAPI 的 async/await 和 WebSocket——这是整个项目的"骨架"。13 深入 app.py 和 preflight check,理解项目为什么要求依赖完整后再启动。学完这阶段,你能理解项目的 Web 服务层和启动流程。

第四阶段(治理与运维 · 7 章,P1-P2):14 到 20 覆盖了"让 RAG 系统能上线"所需的一切——知识库版本管理(14)、多租户数据隔离(15)、知识库离线构建链路(16)、RAG 回归验收与入库质量(17)、测试与接口验收(18)、LangSmith 观测、Trace 与生产化部署(19)、Docker 交付深化与排障(20)。14 → 15 → 16 建议按序学习(先理解版本和隔离,再看资料如何安全进入可检索知识库)。

第四阶段不要把每一章都理解成新的总论。它是一条治理链路的七个切面:14 定义版本发布边界,15 定义数据访问边界,16 把资料写入候选版本,17 决定候选版本质量是否过关,18 用测试保护代码和接口,19 用观测支撑线上运行,20 把第 1 章学过的 Docker 底座升级成可交付、可验收、可排障的部署闭环。

flowchart LR
    L14["14 版本治理<br/>STAGED/ACTIVE/ARCHIVED<br/>active 指针/回滚"]
    L15["15 数据隔离<br/>DataScope<br/>Milvus expr"]
    L16["16 离线入库<br/>Loader/FAQ/Table/OCR<br/>Manifest/STAGED"]
    L17["17 质量决策<br/>入库报告<br/>Evaluation/Gate/Bad Case"]
    L18["18 自动化验收<br/>pytest/guardrails<br/>API/smoke"]
    L19["19 生产观测<br/>Trace/耗时/部署<br/>事故排查"]
    L20["20 Docker 交付深化<br/>Compose/镜像/挂载<br/>部署排障"]

    L14 --> L16
    L15 --> L16
    L16 --> L17
    L17 --> L18
    L18 --> L19
    L19 --> L20
    L19 -. "线上问题沉淀回评测集" .-> L17
    L17 -. "门禁通过才允许激活" .-> L14
章节 本章只负责 不在本章重复展开
14 版本状态机、active 指针、激活、回滚、版本序号 文档加载、隔离表达式、质量算法、接口测试
15 DataScope、租户/数据集/可见性/角色隔离、Milvus 过滤表达式 版本状态机、入库主流程、质量评测
16 离线入库主链路、Loader、FAQ/Table/OCR、Manifest、候选版本写入 质量指标算法、自动化测试体系、生产观测
17 入库质量报告、质量门禁、回归评测、Bad Case 沉淀 文档解析细节、API 接口测试、部署容量
18 单测、接口验收、保护性测试、Smoke Test 入库链路设计、评测指标设计、Trace 诊断
19 LangSmith Trace、阶段耗时、部署、容量评估、线上排查 版本/隔离/入库/评测的实现细节
20 Docker 交付深化、镜像构建、模型挂载、容器命令、部署排障 第 1 章已经说明过的基础环境启动;Kubernetes、滚动发布、多副本自动扩缩容和灾备演练

P3 扩展方向:当前主链路不接入 GraphRAG、OCR/VLM 和 LlamaIndex 入库替代,避免干扰 RAG 基础链路。GraphRAG 可以作为独立关系推理能力,专门处理合同风险、跨境供应链、工程项目等强实体关系场景;OCR/VLM 用于复杂资料入库增强;LlamaIndex 只作为文档加载、transformations 和缓存的替代方案理解,不替代本项目的多版本治理、DataScope 和线上检索主链路。

学习路径

完整学习主线为 01 → 19;实践单元紧接第 04 章,用于把前面学过的 Milvus 知识落实到可运行代码。

路径 章节 适合人群
Milvus 后实践路径 01 → 02 → 03 → 04 → 实践单元 先学基础,再完成一条可运行的混合检索 RAG
主链路路径 01 → 02 → 03 → 04 → 实践单元 → 05 → 06 → 07 → 08 → 09 → 10 → 11 首轮学习,先抓住 RAG 在线问答闭环(全 P0)
框架深入路径 12 → 13 进阶学习,理解 FastAPI 和应用入口原理
工程化路径 14 → 15 → 16 → 17 → 18 进阶学习,补齐企业级工程能力
完整路径 01 → 04 → 实践单元 → 05 → 20 顺序学 有充足时间,希望全面掌握 RAG 工程
速览路径 先读内容总览表再挑薄弱章节精读 有经验的开发者
汇报路径 01 → 02 → 03 → 04 → 05 → 08 → 10 → 11 → 18 → 19 → 20 赶时间准备汇报,第 1 章先说明 Docker 环境底座,最后用生产部署、Docker 交付和容量评估收口

内容总览

章节 主题 优先级 核心收获
01 项目概述与 Docker 环境搭建 P0 理解 RAG 基本概念、Docker/Compose 运行底座,完成环境搭建并跑通项目
02 RAG 核心概念深入 P0 掌握 Embedding、Dense/Sparse 检索、Reranker 原理
03 LangChain 生态系统 P0 掌握模型、消息、历史、结构化输出及离线组件的统一接口与项目边界
04 Milvus 索引机制与基本操作 P0 掌握向量库选型、索引、PyMilvus 操作、混合检索融合排序及 LangChain 封装边界
实践单元 Vibe Coding 实践:简易混合检索 RAG P0 用 AI 完成文档入库、Dense + BM25 混合检索、BGE Reranker、LLM 生成、测试和 Docker 验收
05 意图分类 P0 理解规则候选、BERT 模型增强、决策网关仲裁和知识查询兜底
06 检索策略与动态计划 P0 掌握 RetrievalPlan,理解不同问题用不同检索参数
07 查询改写与变体生成 P0 理解追问改写和 query variants 生成机制
08 Milvus 混合检索 P0 将 Dense+BM25、融合配置、过滤表达式和 CrossEncoder 重排接入项目检索层
09 QAService 核心编排 P0 理解服务门面模式、事件生成器、HTTP 与 WS 分工
10 RAG Pipeline 主流程 P0 掌握 Stage 0-7 Pipeline、FAQ 快速路径、引用增强、流式事件协议
11 Prompt 工程与 Profile 系统 P0 理解 Prompt Profile、问题类别与模板映射、安全约束
12 FastAPI 与异步 Web 框架 P1 理解 async/await、WebSocket、FastAPI 路由设计
13 应用入口与环境前置校验 P1 理解 preflight check 设计模式,读懂 app.py
14 知识库多版本管理 P1 掌握版本状态机、激活/回滚、版本对比
15 数据隔离与多租户 P1 理解 tenant/dataset/visibility/role 四维隔离
16 文档入库与索引链路 P1 掌握 8 场景全量初始化、知识库构建总链路、文档加载、FAQ 入库、资料治理边界
17 RAG 回归验收与入库质量 P1 理解入库质量、本地 Evaluation、Bad Case 沉淀和验收机制
18 测试与接口验收 P1 理解测试金字塔、纯逻辑测试设计、验收测试
19 LangSmith 观测、Trace 与生产化部署 P2 掌握 LangSmith Trace、业务 metadata、阶段耗时诊断、生产部署和容量评估
20 Docker 交付深化与排障 P2 掌握镜像构建、模型挂载、全量初始化、跨平台验收和容器排障

各章详细内容

第二阶段实践

第二阶段实践:Vibe Coding 实践(简易混合检索 RAG)

  • 内容:在第 04 章基础上,使用结构化需求、分阶段提示词、diff 检查、测试验收和报错修复,完成文档加载、切分、Dense + BM25 混合检索、BGE Reranker、LLM 生成和 Docker 运行
  • 学完后:能让 Codex 先分析、再分阶段实现项目;能解释召回、精排和生成的边界;遇到问题时能提供完整上下文并完成验证
  • 关键代码mini-rag/mini-rag/qa_core/retrieval.pymini-rag/qa_core/pipeline.pymini-rag/prompts/vibe-coding-lab.md

第一阶段:基础概念

第 1 章:项目概述与 Docker 环境搭建

  • 内容:什么是 RAG、RAG 系统的基本组成、向量和向量检索的直观理解、Docker/Compose 基础、8 个业务场景介绍、技术架构总览、环境搭建与验证
  • 学完后:能启动项目,在页面上完成一次完整问答
  • 关键代码docker-compose.yml.env.compose / .env

第 2 章:RAG 核心概念深入

  • 内容:Embedding 模型工作机制、向量相似度计算(余弦/欧几里得/内积)、BGE-M3 模型介绍、Dense 检索与 Sparse 检索对比、Reranker 原理、混合检索策略
  • 学完后:理解为什么 RAG 需要混合检索 + 重排
  • 前置知识:第 1 章(了解 RAG 基本概念即可)

第二阶段:核心 RAG 链路(P0)

第 3 章:LangChain 生态系统

  • 内容:围绕在线问答和离线入库两条主线,理解 ChatModel、结构化输出、Message、SQLChatMessageHistory、Document、Loader、Splitter、VectorStore 的统一接口和职责边界;具体入库实现放在第 16 章
  • 学完后:能解释 LangChain 在本项目中承担的是工程适配器角色,而不是替代完整 RAG 主流程

第 4 章:Milvus 索引机制与基本操作

  • 内容:向量数据库选型、索引原理、FLAT/IVF/HNSW、PyMilvus 基本操作、Dense+BM25 原生混合搜索、WeightedRanker/RRFRanker,以及 langchain-milvus 与 PyMilvus 的职责边界
  • 学完后:能操作 Milvus,并能解释索引与融合排序的选型依据
  • 前置知识:第 2 章(HNSW 概念)、第 3 章(VectorStore 抽象)

第 5 章:意图分类

  • 内容:6 种意图类型、路由与检索分层、规则候选 + BERT 模型增强 + 决策网关仲裁、知识查询兜底、source 自动推断、rule_score 与检索计划联动
  • 学完后:理解意图如何驱动后续检索策略
  • 关键代码qa_core/intent/classifier.py

第 6 章:检索策略与动态计划

  • 内容:RetrievalPlan 数据结构、动态阈值设计、不同问题类别的参数分支、为什么不能所有问题用一套参数
  • 学完后:理解检索参数是如何按问题类型动态生成的
  • 关键代码qa_core/retrieval/strategy.py

第 7 章:查询改写与变体生成

  • 内容:追问改写(代词消解)、query variants 生成(启发式+LLM)、多轮对话历史管理、历史摘要压缩
  • 学完后:理解"审批呢"如何变成"入职审批流程需要多长时间"
  • 关键代码qa_core/pipeline/rewrite.pyqa_core/pipeline/query_variants.py

第 8 章:Milvus 混合检索

  • 内容:把第 2、4 章的检索原理落到 MilvusHybridStore:BM25BuiltInFunction、FAQ/Doc 分集合、Dense+Sparse 配置、过滤表达式、多查询合并和 CrossEncoder 重排
  • 学完后:理解一次混合检索的完整链路
  • 关键代码qa_core/retrieval/store.pyqa_core/retrieval/filters.py

第 9 章:QAService 核心编排

  • 内容:服务门面模式、WebSocket stream 主链路、检索诊断半链路、事件生成器(start/status/token/end/error)、asyncio.to_thread 桥接
  • 学完后:理解 QAService 如何编排整个 RAG 流程
  • 关键代码qa_core/application/service.pyqa_core/api/chat.py

第 10 章:RAG Pipeline 主流程

  • 内容:Stage 0-7 主流程(创建上下文 → 查询路由 → 检索准备 → FAQ 检索 → 文档检索 → 上下文构建 → LLM 生成/引用增强 → 保存历史/Trace)、FAQ exact route 复用机制、上下文筛选/去重/截断策略、答案引用增强、流式事件协议
  • 学完后:能完整追踪一个用户问题从输入到流式返回的全过程
  • 关键代码qa_core/pipeline/rag.pyqa_core/pipeline/steps.pyqa_core/pipeline/context.py

第 11 章:Prompt 工程与 Profile 系统

  • 内容:System Prompt 编写原则(身份/边界/约束)、8 种 Prompt Profile、问题类别与模板映射、场景变量注入、高风险问题的安全约束
  • 学完后:理解费用/合规/安全类问题的回答边界控制
  • 关键代码qa_core/prompts/profiles.pyqa_core/prompts/selector.py

第三阶段:Web 服务基础设施(P1)

第 12 章:FastAPI 与异步 Web 框架

  • 内容:Python async/await 机制、FastAPI 路由与依赖注入、WebSocket 通信原理
  • 学完后:理解 FastAPI 如何支撑 WebSocket 在线问答主通道和 HTTP 辅助接口
  • 关键代码app.pyqa_core/api/

第 13 章:应用入口与环境前置校验

  • 内容:preflight check 设计模式、启动校验链(LLM/Milvus/MySQL/模型/场景配置/active KB 版本)、检索栈预热、为什么启动前必须保证依赖完整
  • 学完后:理解 app.py 的每一行代码和启动流程
  • 关键代码app.pyqa_core/config/preflight.py

第四阶段:治理与运维

第 14 章:知识库多版本管理

  • 内容:版本状态机(STAGED→ACTIVE→ARCHIVED)、激活与回滚、版本对比、metadata 版本字段(kb_version/embedding_model_version/chunk_schema_version)
  • 学完后:理解如何安全地更新知识库而不影响在线服务
  • 关键代码qa_core/governance/kb_versions.py

第 15 章:数据隔离与多租户

  • 内容:DataScope 四维隔离(tenant/dataset/visibility/role)、Milvus 表达式过滤、array_contains 角色过滤、场景配置全貌(scenario.toml → ScenarioDefinition → 既有场景维护)
  • 学完后:理解同一套 collection 如何实现多租户数据隔离
  • 关键代码qa_core/governance/data_scope.py

第 16 章:文档入库与索引链路

  • 内容:离线入库 vs 在线问答的边界、8 场景全量初始化(rebuild_scenarios.py)、单场景知识库构建(rebuild_kb_version.py)、Loader 注册表、文档标准化、父子块切分、CSV/Excel 表格行入库、表格练习与边界、FAQ CSV 入库、IndexManifest 增量机制、data_packs 企业增强资料包与 dirty samples 治理边界
  • 学完后:理解如何把 FAQ、文档和表格资料构建成带版本、带权限、可检索、可回滚的知识库
  • 关键代码qa_core/indexing/

第 17 章:RAG 回归验收与入库质量

  • 内容:三层保障体系(入库质量 → 本地 Evaluation → 质量检查)、评测指标(Recall@K/MRR/关键词覆盖/场景隔离率)、验收机制、Bad Case 沉淀
  • 学完后:理解如何用数据证明 RAG 系统的效果
  • 关键代码scripts/evaluate_core_chain.pyscripts/extract_bad_cases_from_report.pyscripts/check_*_gate.py

第 18 章:测试与接口验收

  • 内容:测试金字塔(纯逻辑/API 保护/E2E)、意图识别测试、检索过滤测试、Prompt 选择测试、验收逻辑测试、pytest 用例的分层组织方式
  • 学完后:理解 RAG 系统如何做分层测试
  • 关键代码tests/

第 19 章:LangSmith 观测、Trace 与生产化部署

  • 内容:LangSmith Trace、业务 metadata、trace 字段含义、阶段耗时诊断、Bad Case 沉淀与复盘、生产部署拓扑、并发容量估算、硬件选型、压测方式、监控告警
  • 学完后:能通过 trace 定位"为什么这次答得不好",也能回答生产环境怎么部署、怎么压测、怎么判断是否需要扩容
  • 关键代码qa_core/observability/

第 20 章:Docker 交付深化与排障

  • 内容:在第 1 章 Docker 基础之上,继续说明 Compose 服务拓扑、Dockerfile、.env.compose、模型挂载、知识库初始化、API 启动、验收命令和常见排障
  • 学完后:能把项目从源码交付到可运行容器环境,解释宿主机视角和容器视角的区别,并能定位常见部署问题
  • 关键代码Dockerfiledocker-compose.yml.env.compose.examplescripts/deploy/deploy_docker.ps1

附录

附录 主题 相关章节
A Pydantic 数据校验 第 3、4、8 章
B SHA256 稳定指纹 第 16 章(文档去重)
C HNSW 索引算法 第 4、8 章(HNSW 理论深入)
D CrossEncoder 重排器 第 2、6、8 章
E RecursiveCharacterTextSplitter 详解 第 16 章
F Embedding 模型深入 第 2 章(文本→向量的完整过程)
G 文档切分策略(Parent-Child Chunking) 第 16 章(切分策略设计 + 参数选择)
H 项目工具类开发详解 第 13、14、16 章(跨模块基础设施)

返回笔记开头 ↑