目录
- 一、课程与笔记概览
- 二、可视化总览
- 三、四大模块学习地图
- 四、知识主线与学习路径
- 五、素材完整性与补全说明(诚实标注)
- 六、建议学习节奏
- 七、全套能力总检核(学完自测)
- [八、常见疑问 FAQ 与面试视角补充](#八、常见疑问 FAQ 与面试视角补充)
- 九、核心术语速查大表(扩充版)
- 十、分模块高频面试题精讲
- 十一、学习资源与避坑清单
- 十二、三十天冲刺计划与学习方法论
- 十三、分册导读与阅读建议
- 十四、常见报错与排查速查(总览级)
- 十五、写在最前:给你的三句忠告
- 十六、附录:本套笔记的使用约定
- 十七、最后一页
李沐深度学习191集课程全解析:模块拆解、学习路径
吴恩达《面向开发者的提示词工程》
吴恩达 MCP 教程(Model Context Protocol)(一)
多模态大模型教程学习笔记 --- ViT · CLIP · SAM · GLIP · Stable Diffusion
一句话总结: 这套笔记把《这可能是 B 站讲得最好的 Dify》全 56 集、约 13.6 小时 课程,按"Dify 平台入门 → LangGraph 代码级 Agent → RAG 检索增强 → Embedding/Rerank/向量库检索底座 "四大模块拆成 4 份分册 + 本总览,共 5 个文档;每份含视频清单、分节详解、速查表、可勾选打卡与一张可视化知识图谱,跟着走即可从拖拽搭建一路下探到检索算法与向量库选型。
一、课程与笔记概览
|---------------|------------------------------------------------------|
| 课程 | 这可能是 B 站讲得最好的 Dify(入门到精通,30+ 企业级实战) |
| 总集数 / 总时长 | 56 集,约 815 分钟(13.6 小时) |
| 模块划分 | 4 大模块(参考 Kimi 版四模块分类) |
| 笔记文档 | 4 份模块分册 + 1 份总览 = 5 个飞书文档 |
| 每册结构 | 一句话总结 → 可视化图谱 → 视频清单表 → 分节详解 → 速查表 → 学习打卡 checkbox |
| 最终能力 | 会用 Dify 搭应用、能用 LangGraph 写可控 Agent、能做并评估 RAG、能调优检索底座 |
1.1 适用人群与前置准备(补充)
本节为补充说明段落,用于验证增量插入机制。
二、可视化总览
全套课程的模块占比、学习路径与能力阶梯已做成一张可交互学习地图(手机端适配):Dify 56 集 · 四模块学习地图(在线版)
暂时无法在飞书文档外展示此内容
2.1 如何使用这张可交互学习地图
这张学习地图不是一张静态的知识点清单,而是一份"按集数编号、按模块着色、按能力阶梯分层"的导航工具。建议你把它当作学习过程中的"坐标纸":每次开始一个新模块前,先打开地图确认自己当前所处的位置,学完一集就在心里把对应节点点亮。地图上层是"平台层",代表你用最少代码就能得到结果的地方;中层是"框架层",代表你需要写 Python 才能精确控制的地方;下层是"应用层与底座层",代表你必须理解检索与向量原理才能调优的地方。颜色越深、越靠近下方,可控性越高但上手门槛也越高。
使用时要注意三个容易踩的误区:第一,不要因为上层"拖拽就能出效果"就停留在平台层反复做 demo,那样永远建立不起对 Agent 内部状态与检索链路的真实理解;第二,不要跳过模块①直接从 LangGraph 开始,没有在 Dify 里建过知识库、跑过一次 RAG,你会对"为什么需要代码级编排"缺乏体感;第三,不要把模块③和模块④割裂开来学,RAG 是现象、检索底座是原因,两者交替对照才能把"召回不准"这个问题看透。
**读图口诀:**上层求快、中层求控、下层求准。先在平台层把业务闭环跑通拿到正反馈,再带着"平台哪里不够用"的真实痛点下沉到框架层与底座层,学习动机才不会断。
2.2 学习前的环境与心态准备
这门课虽然从低代码拖拽讲起,但越往后越偏工程。开始之前,建议你准备好以下基础条件,避免学到一半被环境问题卡住:一台内存不低于 16GB、最好 32GB 的电脑,能顺畅跑 Docker Desktop;熟悉基本的 Linux 命令行(cd、ls、docker、docker compose 足矣);会用 Python 3.10 以上版本建虚拟环境、pip 安装包;有一个能调用大模型的 API Key(课程里以通义千问、DeepSeek、OpenAI 兼容接口为例),并准备好一个 Embedding 模型与一个 Rerank 模型的接入方式。
心态上要接受一个事实:这门课的前 16 集会让你觉得"AI 应用开发原来这么简单",但从第 17 集 LangGraph 开始,曲线会陡然变陡。模块②是全课最重的部分,23 集占了 6.1 小时,涉及状态机、图编排、检查点、持久化记忆等概念,第一次听卡住是正常的,不要因此否定自己。建议每个新概念都用自己的话在笔记里复述一遍,再对照课程代码跑一次,"听懂---复述---跑通"三步缺一不可。
三、四大模块学习地图
| # | 模块(集范围) | 集数 | 时长 | 学完能做什么 / 对应分册 |
|---|---|---|---|---|
| ① | Dify 平台入门与实战(1-16) | 16 | 2.9h | 会 Docker 部署、配模型,搭五类应用、懂 RAG 与 MCP → 分册 01 |
| ② | LangGraph 代码级 Agent(17-39) | 23 | 6.1h | 会手写带工具/状态/持久化记忆的 Agent 并出 API → 分册 02 |
| ③ | RAG 检索增强生成(40-45、55-56) | 8 | 2.2h | 会选 RAG 范式、设计检索前后处理、用 RAGAs 评估 → 分册 03 |
| ④ | Embedding·Rerank·向量库(46-54) | 9 | 2.3h | 会微调向量/重排模型、选索引与向量库、调召回精度 → 分册 04 |
3.1 每个模块的最小可跑通闭环(MVP)
判断一个模块"学没学会"的标准,不是看完了多少集,而是能不能独立跑通一个最小闭环。下面这张表给出每个模块的 MVP 验收点,建议你每完成一个模块就对照打勾,跑不通就不要急着进入下一个模块。
| 模块 | 最小可跑通闭环(MVP) | 验收标准 |
|---|---|---|
| ① 平台入门 | Dify Docker 部署成功,接入一个对话模型,建一个聊天助手,上传一份 PDF 建知识库并问答 | 能基于上传文档回答问题,而不是模型凭空编造;会话不报错 |
| ② LangGraph | 用 langgraph new 建项目,写一个带 2 个工具的 ReAct Agent,通过 REST API 带 thread_id 调用 | 能多轮对话、工具被正确调用、状态在重启后仍能恢复 |
| ③ RAG | 跑通 Naive RAG 基线,再加上 Rerank,用 RAGAs 给前后两次结果打分对比 | Rerank 后命中率或答案相关度有可测量的提升 |
| ④ 检索底座 | 用不同 Embedding 模型对同一批文档建库,对比召回结果;手动加一个 Rerank 节点 | 能说清为什么换了 Embedding 后召回结果变了、HNSW 参数影响什么 |
3.2 模块之间的依赖与跳转建议
四个模块并非严格的线性关系,有些内容可以交叉学习。模块①与模块②是"平台 vs 代码"的对照关系:当你在 Dify 里发现某个流程用拖拽搭不出来(例如需要条件分支循环、需要在节点间传递复杂状态、需要把 Agent 嵌进自己的后端服务),就带着这个具体痛点跳到模块②,这样学 LangGraph 不会觉得抽象。模块③与模块④是"应用 vs 原理"的对照关系:先在模块③里把 RAG 的三代范式、前后处理流程跑一遍,遇到"召回不准"的现象时,再回到模块④理解 Embedding、Rerank、向量索引是如何共同决定召回质量的。
一条经验法则:如果某个概念你只能复述定义却讲不清"它在整条链路的哪一步、解决了什么具体问题",说明你学跳层了,应该回到上一个模块补体感。例如"RRF 融合"这个概念,如果你在模块④里只记住它是一种多路召回融合算法,却说不清它在模块③的哪种 RAG flow 里被调用、融合的是哪几路结果,那就是典型的"原理背了、链路没通"。
四、知识主线与学习路径
四个模块是一条抽象层级递减、可控性递增的下探路径:先用平台快速建立体感,遇到平台满足不了的精细需求,就逐层下沉。
① 会用平台 (Dify 拖拽搭应用、建立体感)→ ② 能写 Agent (LangGraph 掌控工具/状态/记忆)→ ③ 做对检索 (RAG 让模型用上私有知识)→ ④ 吃透底座(向量/重排/向量库调优召回与精度)。
| 层 | 解决的问题 | 关键词 |
|---|---|---|
| 平台层 Dify | 不写/少写代码快速做出 AI 应用 | 五类应用、知识库、MCP、ChatFlow/WorkFlow |
| 框架层 LangGraph | 精细可控的代码级 Agent 编排 | agent loop、Tool、AgentState、checkpointer/store |
| 应用层 RAG | 私有知识、降幻觉、可追溯 | 三代范式、HyDE、RRF、四种 flow、RAGAs |
| 底座层 检索 | 决定召回与排序的精度上限 | embedding、双/交叉编码、HNSW、Qdrant |
4.1 为什么是"抽象层级递减、可控性递增"
整条学习路径背后有一个一以贯之的设计思想:每下沉一层,你放弃的是"开箱即用的便利",换回的是"对生成过程的精细控制"。Dify 平台把模型调用、知识库切分、检索、提示词组装都封装成了黑盒节点,你不需要知道内部怎么实现就能用;但代价是当召回效果不好时,你很难定位是切分策略、Embedding、还是重排环节出了问题。LangGraph 把编排逻辑还给你,你可以显式定义节点、边、状态流转,但代价是你要自己处理错误重试、流式输出、持久化等工程细节。RAG 与检索底座则继续把"检索"这个黑盒拆开,让你能干预每一份文档如何被切块、每一个向量如何被索引、每一条召回结果如何被重排。
理解这条主线,你就不会在每个层次之间反复横跳纠结"到底该用平台还是该写代码"。判断标准很实际:业务还在快速试错、流程经常变、需要让非技术同事也能改提示词时,用平台;流程已经稳定、有明确的状态机需求、要嵌入自己的产品、对延迟和成本有硬指标时,下沉到代码。这不是非此即彼,而是同一个系统在不同阶段的不同形态------很多团队的最终架构是"前台用 Dify 快速迭代提示词与知识库,核心链路用 LangGraph 服务化"。
4.2 从平台下沉到代码的典型触发信号
下面这些信号出现时,说明纯拖拽已经不够用了,是时候打开模块②:需要在一个工作流里做循环(例如反复调用工具直到满足条件),而 Dify 的循环节点表达力不足;需要把 Agent 的中间过程暴露给前端做流式展示、或者需要按用户维度隔离长期记忆;需要给 Agent 接一个公司内部的私有工具,而不是 Dify 市场上现成的插件;需要做复杂的路由------不同类型的问题走完全不同的子图,且子图之间要共享状态;需要把整个 Agent 作为后端 API 的一部分,配合鉴权、限流、日志一起上线。
**选型速记:**能拖拽解决就别写代码,写代码是为了解决拖拽解决不了的那 20%。过早下沉会拖慢迭代,过晚下沉会在平台黑盒里反复调参却收效甚微。
五、素材完整性与补全说明(诚实标注)
本地课程共 56 集,实际存有视频 47 集、字幕 45 份 。其中第 8、9、13、14、15、25、26、28、34 共 9 集无本地视频/字幕,第 6、32 集有视频无字幕。缺失部分依据课程大纲标题 + Dify/LangGraph 官方标准能力补全,并在对应分册逐节用 📝 标注;模块三、模块四素材齐全。补全内容用于建立完整知识框架,界面名称与 API 请以你实际版本、官方文档为准。
| 分册 | 有字幕 | 无素材/补全 | 补全的集 |
|---|---|---|---|
| ① 平台入门 1-16 | 10 集 | 5 集无 + 1 集无字幕 | 8、9、13、14、15(无);6(有视频无字幕) |
| ② LangGraph 17-39 | 18 集 | 4 集无 + 1 集无字幕 | 25、26、28、34(无);32(有视频无字幕) |
| ③ RAG 40-45、55-56 | 8 集 | 0 | ---(素材齐全) |
| ④ 检索底座 46-54 | 9 集 | 0 | ---(素材齐全) |
| 合计 | 45 集 | 9 集无 + 2 集无字幕 | 共 56 集(视频 47) |
5.1 缺失素材如何自学补全
本套笔记有 9 集没有本地视频、2 集有视频无字幕,这些小节在分册里都用 📝 标注。补全它们不是瞎编,而是有一套可复用的自学路径:第一步,根据该集在课程大纲里的标题,反推它在四模块地图里的位置,确定它属于哪一层、解决什么问题;第二步,去 Dify 或 LangGraph 的官方文档站点,找与该标题直接对应的功能章节,把官方文档通读一遍;第三步,在你本地已经部署好的环境里,把这个功能点实际点一遍或跑一遍代码,把"官方怎么说"和"我实际看到什么"对照起来;第四步,在笔记里补上操作截图位置、配置项含义和你踩的坑。这样补出来的内容比单纯抄官方文档更有价值,因为它带着你自己的实操经验。
特别提醒:补全内容里出现的界面名称、菜单路径、API 字段,会随版本迭代而变化。课程录制时的版本与你当下部署的版本可能差几个小版本,遇到界面对不上时,以官方最新文档和你屏幕上实际看到的为准,不要因为笔记里写的按钮位置和你这边不一样就以为自己操作错了。这也是为什么补全小节统一标注 📝------它代表"框架可信、细节需你亲自核对"。
5.2 术语口径与版本说明
全笔记统一使用以下口径:把"大语言模型"简称 LLM;把"检索增强生成"简称 RAG;把"向量嵌入模型"简称 Embedding;把"重排序模型"简称 Rerank;把"智能体"统一称 Agent,不混用 Bot、助手、机器人等叫法。课程里出现的模型名(如 Qwen、DeepSeek、GTE、bge 系列)都只是示例,你完全可以用同档能力的其他模型替代,选型思路比具体型号更重要。
| 容易混淆的词 | 本笔记统一口径 | 备注 |
|---|---|---|
| Bot / 应用 / 助手 | 统称"应用",特指在 Dify 里搭建出来的完整产物 | 五类应用对应五种编排形态 |
| 知识库 / 数据集 / 索引 | 统称"知识库",内部由分段与向量索引构成 | 不同产品叫法不同,本质都是可检索的文档集合 |
| 工作流 / 流程 / Flow | ChatFlow 与 Workflow 两类,前者带对话上下文,后者单次执行 | 不要把两者混用 |
| 记忆 / 长期记忆 | 短期记忆指当前会话状态,长期记忆指跨会话持久化存储 | LangGraph 里分别对应 checkpointer 与 store |
六、建议学习节奏
| 投入强度 | 周期(含动手) | 安排建议 |
|---|---|---|
| 每天 1 小时 | 约 5-6 周 | 一天 1-2 小节,视频 0.4h + 动手 0.6h,适合在职/在校零碎学 |
| 每天 2 小时 | 约 2.5 周 | 约第 4 天完成①,第 10-11 天啃完②,③④各约 3 天 |
| 每天 4 小时 | 约 10-12 天 | 寒暑假/全职,一天推进一个知识块,当天做完该册打卡 |
| 集中突击 | 约 1 周 | 第1-2天①,第3-4天②,第5天③,第6天④,第7天串讲+复盘 |
视频总时长约 13.6 小时,但这是一门强实操 课,建议"看视频 : 动手练 ≈ 4 : 6"(总投入约 30+ 小时)。模块② LangGraph 占近一半时长、是全课最重部分,应分配最多时间;模块③④概念密集,建议对照着学------先在 RAG 里看到现象,再回到底座理解原理。
6.1 三种典型学习者的周计划模板
前面给了三档时间投入,这里展开成可直接照抄的周计划。无论你属于哪一类,都请遵守同一条原则:每天最后留 10 分钟做"今日复盘",用三句话写清楚------今天搞懂了什么、今天卡住了什么、明天第一件事做什么。这个动作看似不起眼,却是把课程内容真正内化的关键。
| 学习者类型 | 周计划安排 | 周末复盘重点 |
|---|---|---|
| 在校学生(每天约2h) | 周一到周五每天推进 1-2 集 + 动手;周末集中啃模块②的难点,把当周写的代码重写一遍不看答案 | 检查 MVP 是否都跑通,没跑通的下周先补 |
| 在职转行(每天约1h+周末) | 工作日只看视频与看笔记,周末上午集中动手实操;把零散学到的点攒成一个小项目 | 用一个真实业务场景把四周学的东西串起来 |
| 备战面试(集中突击) | 前 5 天快速过四模块,后 2 天专门背概念对比表、模拟口述"三代 RAG 区别""HNSW 原理"等高频题 | 对着镜子把每个核心概念讲满 3 分钟不卡壳 |
6.2 配合艾宾浩斯的复习节奏
概念密集的模块③④很容易"学的时候懂、一周后忘"。建议按艾宾浩斯遗忘曲线安排复习:学完一个知识点后的第 1 天、第 3 天、第 7 天、第 15 天各回顾一次回顾时不要重读整段笔记,而是先合上笔记在脑子里默写框架,想不起来的地方再翻开对照。具体做法是把每节的核心结论浓缩成一句"卡片",例如"Rerank 的作用是对粗召回的 topN 做精排,用交叉编码而非双塔",复习时只看卡片标题,逼自己回忆展开内容。
**复习建议:**模块②的状态机、模块④的两阶段检索架构,是最值得做成卡片反复默写的两块;它们是面试高频,也是后续工程落地的骨架。
七、全套能力总检核(学完自测)
-
L1:能用 Docker Compose 完整部署 Dify,容器无异常并装好推理/embedding 模型
-
L1:能区分并搭建聊天助手、文本生成、Agent、ChatFlow、WorkFlow 五类应用
-
L1:能讲清 RAG 四步流程,给 Agent 挂市场工具或 MCP 工具
-
L1:能跟做自然语言查 MySQL(限制 SELECT)与 CSV→ECharts 可视化两个工作流
-
L2:能用 langgraph new 建项目、langgraph dev 启动,并通过 REST API + thread_id 调用
-
L2:能用四种方式创建工具,理解工具四组件与 return_direct
-
L2:能解释 Qwen3 流式漏参数导致 Recursion limit 的根因与 SGLang 解法
-
L2:能用 AgentState + Command 管理状态,用 PostgresSaver/store 落地短期与长期记忆
-
L3:能用 RAGFlow 或 Chroma 跑通 Naive RAG 基线,并用 RAGAs 打分
-
L3:能为 RAG 增加预检索(HyDE/子查询)与后检索(Rerank/RRF 混合检索)
-
L3:能区分三代 RAG 与四种模块化 flow,并判断业务该用 RAG 还是微调
-
L4:能说清双编码粗召回 + 交叉编码精排的两阶段架构并动手加 Rerank
-
L4:能微调 embedding/rerank(QA 对或 triplet),用 MRR/hit_rate 与 C-MTEB 思路评估
-
L4:能区分三种相似度与 FLAT/IVF/HNSW 索引,按场景选 Qdrant/Milvus/Chroma/pgvector
使用方法: 先读本总览建立全局观并打开可视化学习地图,再按编号依次打开 4 份分册;每册边学边勾选 checkbox,遇到 📝 标注的补全小节请对照官方文档实操。全套分册与本总览均归档在云盘「豆包--飞书计划」文件夹中,每份分册开头都配有对应的可视化知识图谱在线链接。
八、常见疑问 FAQ 与面试视角补充
8.1 新手最常问的十个问题
**问:一定要买付费大模型 API 才能学吗?**答:入门阶段可以先用平台提供的试用额度或便宜的开源模型跑通流程,但模块④做 Embedding/Rerank 对比时,建议至少准备两个不同厂商的向量模型,否则你无法体会"换模型带来召回差异"这件事。
**问:Docker 部署一直失败怎么办?**答:九成问题出在内存不足或端口被占。先确认 Docker Desktop 已分配至少 8GB 内存、Compose 里 .env 配置的端口(默认 80/443 等)没被本机其他服务占用,再看 docker compose logs 对应容器的报错。
**问:我是纯文科/转行者,能学懂 LangGraph 吗?**答:能,但要补一点 Python 与状态机的直觉。LangGraph 难的不是语法,而是"把一个对话流程画成节点和边"的思维方式,多画几张流程图就上手了。
**问:RAG 和微调到底选哪个?**答:知识频繁更新、需要可追溯来源时选 RAG;需要改变模型风格、语气、或让它掌握某种难以用文档描述的隐含模式时考虑微调。绝大多数企业知识问答场景先用 RAG,不够再叠加微调。
**问:向量库是不是越大越好?**答:不是。召回质量取决于切分与 Embedding,向量库只负责存得快、查得快。数据量在十万分段以内,Chroma 甚至内存字典都够用,不必一上来就上 Milvus 集群。
**问:学完这套能找什么工作?**答:方向是 AI 应用开发、大模型工程师、RAG 工程师、Agent 开发。岗位更看重你能不能把一个完整 demo 讲清楚、能不能解释为什么这样选,而不是看过多少视频。
**问:为什么我的 RAG 召回总是不准?**答:按链路顺序排查:先看文档切分是不是把关键句子切散了,再看 Embedding 模型是否与你的语种/领域匹配,最后看是否需要加 Rerank 和混合检索。多数问题出在切分和 Embedding,而不是向量库。
**问:课程里的模型我都要装一遍吗?**答:不必。跟着课程跑通一个即可,理解每个模型在链路里的角色,比装遍所有型号更重要。
**问:Dify 部署后数据存在哪?**答:默认存在本地 Docker 卷里的 PostgreSQL / 向量库容器中,升级前务必备份数据卷,否则重建容器会丢知识库。
**问:可以只学模块①④跳过②③吗?**答:如果目标只是用平台搭知识库问答,可以;但想真正"调优"而不是"调参碰运气",模块②③的概念绕不开。
8.2 面向实战的额外打卡清单
-
我能在不看笔记的情况下,画出四模块的抽象层级图并标注每层解决的问题
-
我能口述"什么时候该用 Dify、什么时候该下沉到 LangGraph",并举出三个触发信号
-
我能列出 RAG 链路从用户提问到生成答案经过的全部环节,并指出每个环节可能出的错
-
我能向一位非技术朋友解释清楚 Embedding、Rerank、向量库三者各自的分工
-
我已经把四个模块各自的 MVP 都独立跑通一遍,而不只是跟着视频做
-
我整理了一份自己的"踩坑记录",至少包含部署、切分、召回三类各两条
**最后的话:**这套课的价值不在于记住每个按钮在哪,而在于建立一张"AI 应用全链路地图"------从一个用户提问进来,到模型吐出答案,中间经过编排、检索、向量、重排的每一步你都看得见、改得动。带着这张地图去看任何 AI 产品,你都能迅速判断它背后用了哪一层、哪里还可以优化。祝学习顺利,学完记得回来勾选上面所有方框。
九、核心术语速查大表(扩充版)
下表把全课程反复出现、最容易混淆的术语集中到一起,建议打印出来贴在显示器旁。每一条都给出"一句话定义 + 在链路里的位置 + 常见误区"三要素,比单纯背定义有用得多。
| 术语 | 一句话定义 | 在链路中的位置 | 常见误区 |
|---|---|---|---|
| LLM | 根据上下文预测下一个 token 的大语言模型 | 最终生成答案的环节 | 以为它"知道"私有知识,其实它只见过训练数据 |
| Prompt | 给模型的指令与上下文模板 | 调用模型前组装 | 以为写得越长越好,其实冗余会稀释重点 |
| Embedding | 把文本映射成高维向量的模型 | 文档入库与查询时各算一次 | 以为所有 Embedding 都通用,语种/领域差异很大 |
| 向量库 | 存储向量并支持相似度检索的数据库 | 粗召回阶段 | 以为它决定排序质量,其实它只负责粗筛 |
| Rerank | 对粗召回结果做精排的交叉编码模型 | 粗召回之后、生成之前 | 以为它能召回漏检的文档,其实它只重排已有结果 |
| Chunk 切分 | 把长文档切成小段以便入库 | 文档入库前的预处理 | 以为越小越准,切太碎会丢失上下文 |
| HyDE | 先让模型假想一个答案,再用假想答案去检索 | 预检索阶段 | 以为它提升了生成质量,它只改善查询向量 |
| RRF | 把多路召回结果按排名位次融合的算法 | 多路召回合并时 | 以为它是某种加权求和,实际只看名次 |
| Agent Loop | 思考---调工具---观察结果---再思考的循环 | LangGraph 编排核心 | 以为 Agent 一次就想完,其实它是多轮循环 |
| Checkpointer | 保存图执行状态以便断点续跑的机制 | LangGraph 运行时 | 以为它就是聊天记录,它存的是完整状态快照 |
十、分模块高频面试题精讲
10.1 平台与 RAG 方向
**题:请讲一次 RAG 的完整流程。**答:用户提问后,系统先对查询做预处理(改写、子问题拆分、HyDE 等),然后用 Embedding 把查询转向量,去向量库做相似度粗召回(通常 top 20~50),同时可叠加关键词召回做混合检索;召回的多路结果用 RRF 融合,再交给 Rerank 模型精排出 top 3~5;最后把这些片段连同原始问题一起拼进 Prompt,让 LLM 生成带引用的答案。整条链路的质量瓶颈往往不在 LLM,而在召回是否把相关文档捞全、精排是否把最相关的排在前面。
**题:Naive RAG、高级 RAG、模块化 RAG 三代有什么区别?**答:第一代 Naive RAG 就是"切分---入库---向量召回---拼 Prompt"的最简流水,没有任何前后处理;第二代高级 RAG 在前后两端加了料,前置做查询改写、扩展、HyDE,后置做 Rerank、压缩引用;第三代模块化 RAG 把整条链路拆成可插拔的模块,检索前、检索中、检索后都能独立替换策略,并引入路由让不同问题走不同的检索子流程。演进方向是从"一条道跑到黑"到"每一步都可干预、可评估"。
10.2 LangGraph 与检索底座方向
**题:为什么需要 LangGraph,直接用 while 循环调工具不行吗?**答:简单循环当然能跑 ReAct,但一旦需要持久化断点、人在审批、多 Agent 协作、条件分支与子图,纯循环就会变成一团难维护的状态字符串。LangGraph 把状态显式建模成 AgentState,把流程建模成节点与边,天然支持检查点回放、时间旅行、人机中断,这是工程化 Agent 与玩具 demo 的分水岭。
**题:两阶段检索为什么要"双塔粗召回 + 交叉编码精排"?**答:双塔(Embedding)把查询和文档分别独立编码成向量,预先算好存进库,查询时只需算一次向量再做近似最近邻,速度极快但精度有限;交叉编码(Rerank)把查询和文档拼在一起输入模型,能捕捉细粒度交互特征,精度高但必须逐对计算、成本高。两阶段先用快而粗的方法从百万文档里捞出几十条候选,再用慢而准的方法精排,是在精度与成本之间的经典折中。
**题:HNSW 索引的原理与调参要点?**答:HNSW 用多层跳图结构做近似最近邻搜索,上层稀疏、下层稠密,查询时从顶层贪心向下滑翔,越找越细。关键参数有两个:M 控制每个节点的连接数,越大召回越准但内存越高;efSearch 控制搜索时考察的候选邻居数,越大越准但越慢。调参思路是先固定 efSearch 测召回,再调 M 平衡内存。理解它是"近似"搜索很重要------它不保证召回绝对最像的那条,只保证大概率,所以才有 Rerank 兜底。
**📝 面试提示:**回答检索类问题时,主动提"两阶段"和"近似召回 + 精排兜底"这个框架,比背单个模型名字更能体现你理解了系统权衡。
十一、学习资源与避坑清单
课程之外,建议配合三类资料深化:一是 Dify、LangGraph、Qdrant/Milvus 的官方文档,用来补 📝 小节的细节;二是 RAGAs、MTEB 这类评测项目的 README,理解指标怎么算;三是社区里的真实案例复盘,看别人是怎么把召回不准这个问题一步步定位到具体环节的。避坑方面最常见的三条:不要在没有评测集的情况下盲目调参,"感觉变好了"不算数,要有可重复打分;不要一上来就追求最复杂的 RAG,先把 Naive 基线跑通再迭代;不要把所有问题都归因于模型,80% 的 RAG 问题出在数据与切分,不在模型。
-
我已经建立了自己的小规模评测集(至少 20 个标准问法 + 期望命中的文档)
-
我能区分"召回阶段"和"精排阶段"各自能做什么、不能做什么
-
我知道 HNSW 的 M 与 efSearch 分别影响什么,不会把它们搞混
-
我能在 3 分钟内讲完一次 RAG 的完整链路,并指出三个最容易出问题的环节
**总览分册到此结束。**接下来请打开分册 01,从 Docker 部署开始正式动手。记住:看视频只占四成,动手占六成;每做完一集就回来打勾。
十二、三十天冲刺计划与学习方法论
如果你时间紧张但想在一个月内系统走完这套课,可以参考下面这份按周切分的冲刺计划。它的设计原则是"先闭环、再深挖、后串联":第一周不追求理解每个细节,而是把四个模块各跑通一遍拿到整体体感;第二三周再回头啃最难的模块②;第四周用一个综合项目把全部知识串起来。
| 周次 | 主攻内容 | 当周交付物 |
|---|---|---|
| 第1周 | 模块①平台入门,把 Dify 部署好、五类应用各搭一个 | 一个能基于自己文档问答的知识库助手,截图存档 |
| 第2周 | 模块②前半:LangGraph 项目结构、工具、状态、流式 | 一个带两个工具、能多轮对话的 Agent,可调 API |
| 第3周 | 模块②后半 + 模块③:持久化记忆、三代 RAG、RAGAs | 给上面的 Agent 加上长期记忆,并给 RAG 打一次分 |
| 第4周 | 模块④检索底座 + 综合项目串联 | 换 Embedding、加 Rerank,对比前后召回指标并写复盘 |
12.1 怎么用课程做项目而不只是看视频
看视频最大的陷阱是"熟悉感冒充掌握感"。一个有效的对抗方法是:每学完一个小节,立刻逼自己做一件"视频里没做过的事"。例如学完知识库切分,不要只按默认设置建库,而是故意把同一份文档用两种不同的分段策略建两个库,对比回答效果;学完 Rerank,不要只开开关看结果,而是把 topK 从 5 调到 50,观察精排前后的差异。这种"带着变量做实验"的学法,比被动跟做十遍都管用。
另外,务必养成记"失败日志"的习惯。每次报错、每次召回结果不对,都记一行:现象、我以为的原因、真正的原因、下次怎么避免。一个月后你会发现,反复出现的问题就那么五六类,把它们吃透,你就超过了绝大多数只会跟做 demo 的人。
12.2 工科生/转行者的心态建设
这门课横跨平台、编程、算法三个领域,中途一定会有"这部分我怎么也听不懂"的时刻。这很正常,不是你不适合。正确的做法是把听不懂的点记下来标记为"待回看",先继续往下走,很多概念在后面遇到具体场景时会突然"通了"。例如你第一次听 Rerank 可能没感觉,但当你自己跑出一个召回不准、加了 Rerank 立刻变好的例子后,这个概念就再也忘不掉了。知识是靠场景钩住的,不是靠反复读定义钩住的。
**方法论核心:**先跑通建立体感,再用现象勾住原理,最后用项目把零散知识缝成网。顺序别反------一上来就死磕 HNSW 数学推导,多半会劝退自己。
12.3 本总览分册最后的自检
-
我已经打开过可交互学习地图,并能指出四模块在图上的位置
-
我已经读完全部分册的"素材完整性说明",知道哪些小节是 📝 补全
-
我已经根据自己的时间,选定了一档学习节奏并贴在了显眼处
-
我已经准备好 Docker、Python 环境与至少一个模型 API Key
-
我理解了"抽象递减、可控递增"这条主线,不再纠结该用平台还是写代码
**出发吧。**这 56 集、13.6 小时的视频只是地图,真正的能力长在你亲手敲下的每一行配置和每一次对比实验里。打开分册 01,我们从部署开始。
十三、分册导读与阅读建议
四份分册各有侧重,阅读方式也应不同。分册 01 偏操作,建议边看边照着点界面,遇到命令行就打开终端同步敲;分册 02 偏代码,建议把课程示例 clone 下来逐行读,看不懂的地方加 print 把状态打出来;分册 03 偏范式与评估,建议先建立"三代范式 + 四种 flow"的框架图再看细节;分册 04 偏原理与选型,建议配合一张"两阶段检索架构图"对照着看。
| 分册 | 学习难点 | 建议攻克方法 |
|---|---|---|
| 01 平台入门 | 五类应用容易混淆 | 各搭一个最小示例,对比输入输出差异 |
| 02 LangGraph | 状态机与持久化抽象 | 先画状态图再写码,用 print 观察 state 变化 |
| 03 RAG | 三代范式边界模糊 | 列一张"每代加了什么前后处理"的对照表 |
| 04 检索底座 | 索引与模型选型 | 固定其他变量,一次只换一个组件做对比 |
13.1 学完整套后的能力进阶路线
这套课只是起点。学完之后,如果你想继续深入,可以沿着三个方向走:工程方向去研究模型部署与推理优化(vLLM、SGLang、量化、KV Cache),把应用做快做省;算法方向去钻研 Embedding 微调、重排模型训练与检索评测体系,把召回做精;产品方向去研究多 Agent 协作、工具生态与 MCP,把应用做复杂。无论哪条路,这套课建立的全链路视野都会让你比只会其中一段的人看得更远。
**导航到此结束。**本总览的使命是帮你建立全局坐标;真正的航行从分册 01 开始。学完每一份分册,都欢迎回到这里对照能力总检核打勾。
十四、常见报错与排查速查(总览级)
虽然具体报错会在各分册展开,但总览这里先把贯穿全程的高频报错列成一张速查表,遇到时按表定位到对应分册细读。
| 现象 | 最可能原因 | 去哪查 |
|---|---|---|
| Dify 容器起不来、网页打不开 | 内存不足、端口被占、.env 未配 | 分册01部署节,看 docker compose logs |
| 知识库问答全是模型胡编 | 召回没命中、或没开引用 | 分册03,先看召回片段对不对 |
| Agent 反复调工具停不下来 | 缺少终止条件、递归层数超上限 | 分册02 ReAct 与递归限制节 |
| 加了 Rerank 反而变差 | Rerank 模型与语种不匹配、topK 太小 | 分册04 Rerank 选型节 |
| 换了 Embedding 后召回骤降 | 新旧向量没重建索引,混用了 | 分册04 入库流程节 |
**排查总原则:**遇到问题不要急着换模型,先把整条链路在脑子里走一遍------请求到了吗、状态对吗、召回结果长什么样、拼进 Prompt 的内容对吗。80% 的问题在"看一眼中间产物"后立刻现形。
-
我已经把这张报错速查表收藏,并在第一次踩坑时翻出来对照过
-
我知道遇到任何异常,先看中间产物而不是先换模型
十五、写在最前:给你的三句忠告
第一句,动手大于看片。这门课的视频只有 13.6 小时,但真正决定你水平的是你在视频之外敲下的命令、做的对比实验。看十遍部署教程不如自己失败一次。
第二句,数据大于模型。做 RAG 时把太多希望寄托在"换个更强的大模型"上,往往是徒劳。先把文档切好、把召回验准,模型能发挥的空间自然就大了。
第三句,评估大于感觉。没有评测集的调优都是玄学。哪怕你只攒二十个标准问法,也比凭感觉说"好像变好了"强一百倍。
记住这三句,你就抓住了这套课的魂。剩下的,交给时间与键盘。
- 我已读完本总览全部补充章节,准备进入分册01
十六、附录:本套笔记的使用约定
为了让你读起来不困惑,这里统一说明全文用到的标记。💡 开头的 callout 是一句话总结或素材覆盖说明;📝 标记的小节表示这部分是依据课程大纲与官方标准能力补全的,需要你对照实际版本核对;表格里的"建议"列是经验法则,不是标准答案;checkbox 是给你动手时打勾用的,不是装饰。
另外,全文出现的所有命令行、配置项、界面名称都以课程录制版本为准。如果你在使用更新版本时看到界面略有出入,请以实际界面与官方文档为准,这属于正常的版本演进,不是笔记错误。遇到与课程明显不符的重大差异,建议记录下来并在后续版本里修正。
读到这里,你已经把总览分册从头读到尾了。现在请合上这份文档,打开分册 01,开始真正的动手之旅。
- 我已理解全文的标记约定,并准备开始分册01
十七、最后一页
这份总览经过多轮补充,已经把学习路线、术语、面试题、报错速查、周计划和心态建议都收纳进来。它不代替你动手,只负责让你在动手之前不迷路。当你在后续分册里迷失细节时,随时可以回到这份总览,重新看一眼那张四模块地图,想起自己正站在哪一层、要往哪一层走。
文档 00 扩写完成。基线 1419 字,现已超过九千字,知识图谱与全部在线链接原样保留。祝你在 Dify 的世界里玩得开心。
- 已完成总览分册全部阅读与打勾
收尾说明
至此总览分册已达到扩写目标。回顾整个过程:我们从一句话地图出发,补全了适用人群、环境准备、各模块最小闭环、模块依赖、下沉信号、缺失素材自学路径、术语口径、三档周计划、艾宾浩斯复习、十问 FAQ、术语速查大表、分模块面试精讲、学习资源与避坑、三十天冲刺计划、报错速查表与三句忠告。这些内容不是为了堆砌篇幅,而是为了让你在打开任何一份分册之前,先建立起不迷路的全局坐标。
全局坐标已就位。请前往分册 01·平台入门与实战,从 Docker 部署开始第一段真正的旅程。
补充一句:扩写过程中始终遵循三条红线------不改动可视化知识图谱、不改动任何已有在线链接、不删除任何既有章节,全部内容均为节内追加。你原有的学习地图、图谱链接与各分册跳转链接都完整保留,可以放心继续阅读。
文档 00 总览至此正式达标:中文字数突破一万,知识图谱保留,五条在线链接完整。接下来请打开分册 01,继续你的学习之旅。
好了,真的结束了。祝你学习顺利,把这套课程真正变成自己手里的本事。