decodingai-magazine/second-brain-ai-assistant-course · 上手攻略
- 仓库:decodingai-magazine/second-brain-ai-assistant-course
- 链接:https://github.com/decodingai-magazine/second-brain-ai-assistant-course
- 分类:ai
- 作者:spark
- 更新:2026-07-17
这是什么
这是 Decoding AI 杂志社出品的开源实战课程仓库,教你从零搭建一个"Second Brain AI 助手" —— 让你的 Notion / 网页笔记 / 文档作为个人知识库,配合 agent + RAG + 微调 + LLMOps,做出一个能聊你自己的笔记的生产级 AI 助手。MIT 协议、纯 Jupyter Notebook + Python、最近一次提交 2026-04-06、~2.9k Stars。
仓库里实际包含两个独立 Python 应用:
apps/second-brain-offline/—— 离线 ML 流水线(数据 ETL、清洗打分、蒸馏生成训练集、用 Unsloth 微调 Llama 3.1 8B、上传 HuggingFace Endpoint);apps/second-brain-online/—— 在线推理 / Agentic RAG 推理 pipeline(含 agent、Smolagents、ZenML pipeline、Opik 观测)。
加上一层 Docker infrastructure(apps/infrastructure/)做依赖。它不是"写 Notebook 玩玩"——而是按 MLOps 软件工程规范(FTI 架构:Feature/Training/Inference pipeline 分离 + ZenML 编排 + Opik 评估 + HuggingFace 部署)搭建一个真正能跑、能观测、能迭代的端到端 GenAI 系统。
课程配套文字稿在 decodingai.com/t/second-brain-ai-assistant,共 6 个模块 + 1 个 Overview。但所有代码、数据、Notion snapshot 都开源在本仓。
解决什么问题
你想让自己的"个人知识库"变成可对话的 AI 助手(Notion、Obsidian、Google Drive、网盘笔记都行),业界满天飞的"教程"要么是 5 分钟的 demo Notebooks,要么是 magic prompt 模板——没人认真教你按生产标准搭。
这门课针对 5 个具体痛点:
- 没有从零到生产的工程路径:Notebook 教程多但生产化的工程实践少。学完能从需求 → 数据 pipeline → 训练 → 部署 → 在线推理各环节都亲手跑过。
- RAG 在真实数据上跑不动:常识 demo 上 RAG 表现良好,真实 Notion / 网页文档上 retrieval 召回崩坏;本课专门讲 contextual retrieval、parent retrieval 这些进阶 RAG 范式,并用 Opik 做评测对比。
- 微调这件事"看似容易做难":Unsloth + Llama 3.1 8B + HuggingFace Dedicated Endpoints 一条龙,把"如何从无标注数据蒸馏出指令集 → 微调 → 上线服务"做了一遍。
- 没有 LLMOps 习惯:很多人跑 RAG 不写观测、不评估、不记录实验。本课强制 ZenML(编排)+ Opik(LLM eval)+ Comet(训练追踪)三件套。
- agent 不是写 prompt 那么简单:用 smolagents(HuggingFace 出品的 agent 库)搭一个真能调用 RAG / 工具 / 决定"什么时候停"的 agent,并把它和观测接起来。
对象是 ML/AI Engineer、Data/Software Engineer,自学能力的 Intermediate 起步,Python ≥ Intermediate 水平。整套课跑下来只需 "$1-$5 的 API 费"(OpenAI + HuggingFace Dedicated Endpoints 可选)。
快速安装
提醒:作者反复说 —— "阅读文章 + 看代码"是免费的;只有想完整跑通才需要花 API 钱。先读 module 0 文章再决定要不要跑。
0. Clone 仓库
git clone https://github.com/decodingai-magazine/second-brain-ai-assistant-course.git
cd second-brain-ai-assistant-course
1. 拉 Docker infra
cd apps/infrastructure
# 按 README 把 docker-compose 启起来(MongoDB / Postgres / 之类,按仓库当前配置)
docker compose up -d
具体服务依赖以 apps/infrastructure/ 目录里的实际 docker-compose 为准(仓库迭代中有变化)。
2. 装 Python 依赖
# 课程用 uv(Rust 编写的 Python 包管理器)做现代 Python 项目
# 离线 app:
cd apps/second-brain-offline
uv sync # 或 pip install -r requirements.txt
# 在线 app:
cd ../second-brain-online
uv sync
仓库规格明确强调 用 uv + ruff 做包管理与 lint(README 提到的 "Modern Python tooling (uv, ruff)")。
3. 下载 Notion 数据 snapshot(可选,避免依赖你的 Notion)
作者把课程用的 ~100 页 Notion 内容(GenAI / LLM / RAG / MLOps 资源列表)打了一个 zip 公开放在 S3:
wget https://decodingml-public-data.s3.eu-central-1.amazonaws.com/second_brain_course/notion/notion.zip
unzip notion.zip
不想用 Notion、不想暴露你账号,直接用这份 snapshot就好。如果你要接自己的 Notion,按 apps/second-brain-offline 里的"Notion 数据接入"模块走。
4. 准备 API keys(按需)
写一个 .env 或导出环境变量:
OPENAI_API_KEY=sk-...
HUGGINGFACE_TOKEN=hf_... # 用于上传微调后的模型到 HF Endpoints(可选)
COMET_API_KEY=... # Comet ML 训练追踪(可选,可去掉)
ZENML_SERVER_URL=... # 自部署 ZenML 或用 SaaS 模式
⚠️ 包路径命名:
apps/second-brain-offline和apps/second-brain-online是仓库内的 app 包目录,不是 PyPI 包;不要去pip install second-brain-offline,教程教你uv sync在 app 子目录里管理依赖。
核心用法
模块 0(overview)——不要写代码
先把 Decoding AI 文字版概览 读完,明确六个模块目标、各自产出是什么,然后再决定从哪个模块开始。
模块 1 —— 系统架构(System Design)
无代码。讲 Second Brain AI Assistant 的整体架构:哪些组件、用什么技术栈、为什么这样拆。先把宏观搞清楚再动代码。
模块 2 —— 数据 Pipeline
代码:apps/second-brain-offline
做的事:
- 抽:Notion API → 原始 blocks(也支持自定数据库);
- 清洗:HTML 转 markdown、抓链接里的 PDF/网页正文(大规模爬取);
- 打分:用 LLM + heuristic 给每条文档算 quality score,做后过滤;
- 入:放进 MongoDB(文档库)+ ChromaDB / Qdrant(向量库,按代码当前实现为准)。
cd apps/second-brain-offline
uv run python -m second_brain_offline.pipelines.ingest # 具体模块名以代码为准
# 进度由 ZenML 在 dashboard 上显示
模块 3 —— 蒸馏训练集
同样在 apps/second-brain-offline:
- 用模块 2 处理好的高质量文档;
- 用 GPT-4 之类的强模型对每篇生成结构化摘要,蒸馏成 instruct dataset;
- 落盘成 JSONL,准备喂给模块 4 的微调。
模块 4 —— 用 Unsloth 微调 Llama 3.1 8B
cd apps/second-brain-offline
uv run python -m second_brain_offline.pipelines.finetune \
--base-model meta-llama/Meta-Llama-3.1-8B \
--dataset ./distilled/summary_instruct.jsonl \
--epochs 3
# 训练指标由 Comet 自动记录
Unsloth 是这一阶段的关键:把 Llama 3.1 8B 的 QLoRA 微调显存压到消费级 GPU 也能跑,速度比原生 HF Trainer 快数倍。微调完用 huggingface_hub 把 adapter / merged 模型推到 HF Hub,对外再开 HF Inference Endpoints(dedicated endpoint,月费几美元)。
模块 5 —— 进阶 RAG(contextual + parent retrieval)
仍 apps/second-brain-offline:
- 不只是"chunk → embed → top-k",而是把 chunk context(chunk 周边段落)一起喂给 LLM,避免检索到的片段缺上下文;
- 同时实现 parent retrieval:先检索粗粒度父文档,再让 LLM 定位精确段落,组合生成。
跑完用 Opik 跑一组 eval(faithfulness / answer relevancy / context precision),把不同 RAG 配置的分数拉表对比。
模块 6 —— Agentic RAG + LLMOps
代码:apps/second-brain-online
- 用 smolagents(HF 的 agent 库)搭一个能调用 RAG、tool、决定何时停止的 agent;
- 接 Opik 做线上观测:每一次 agent run 的 tool calls / token / latency / 答案质量全部入库;
- 接 ZenML 编排推理 + 观测 pipeline,方便后续接 CI/CD。
cd apps/second-brain-online
uv run python -m second_brain_online.app # 启 agent API(具体入口以代码为准)
你会拿到一个能聊自己笔记的 AI 助手:
"推荐一些 agent 课程" / "列出 top PDF 解析工具" / "总结 LLM 优化技巧"
全程基于你自己知识库的内容回答。
典型适用场景
- 想转岗 GenAI/LLM 应用工程师:课程实质是把"LLM 应用工程师 SDE/Senior 级别"该会的栈(pipeline orchestration、eval、ft、agent、observability)端到端串起来,找工作写简历"做过完整生产级 GenAI 系统"非常有用。
- 独立开发者想做"AI 知识助手" SaaS:课程里六大模块每一个都是真实产品的一环,拿这套作脚手架,把 Notion 换成 Google Drive / Obsidian 直接演变成自家产品。
- 公司内训 / 教程改造:模块化设计、按 FTI 架构(Feature/Training/Inference)拆得很清晰,可直接转成企业内 GenAI 工程师培训教材。
- 学术研究者的代码 baseline:做 RAG / Agent 方向学术论文需要一个能复现的端到端 baseline,改参数 / 换模型测 ablation 很快。
- 自学者想要"做中学":作者认为这门课"按'搭完整系统'为先,跑通后再逐模块深入"是最高效路径,比起"读完 N 篇论文再做项目"。
坑与注意
- 课程迭代很快,仓库名变了:早期叫
decodingml/second-brain-ai-assistant-course,现在是decodingai-magazine/second-brain-ai-assistant-course;同样的文字课早期也换过发布平台。搜资料时注意 GitHub 仓库路径。 - 运行时假设 2026 中期栈:默认 OpenAI 模型、Llama 3.1 8B、smolagents、Opik、ZenML、Unsloth——都是 2025-2026 时点的版本,几年后这些 API 都会换;做 fork 时把版本钉死(
uv.lock/requirements.txt锁版本 + 镜像时间戳)。 - OpenAI API 费:模块 3 蒸馏 + 模块 5/6 在线推理,全程跑一遍约 $1-5;如果跑多次或扩大 Notion 数据集,成本会线性增长。先确认预算。
- HuggingFace Dedicated Endpoints:可选;不开就只用本地
chainforge-style 调用,不会卡进度,但少了"dedicated endpoint 部署"的演示。 - ZenML 默认走 SaaS / 社区版:需要注册 ZenML 账号;若想完全离线,把 ZenML server 自己 docker 起一份。
- Comet / Opik 也是 SaaS 默认:注册免费层足够;不开也能跑,只是少了可视化。
- 完全跑通 ≈ 8-20 小时:模块 2 ETL(含爬取)+ 模块 3 蒸馏(要发大量 LLM 请求)+ 模块 4 微调(GPU 时间)都不是喝杯咖啡的事。建议分两个晚上跑。
- Notion 接入是 course 的演示,但不是必备:作者提供 snapshot + MongoDB 加载脚本,完全跳过 Notion也能学。如果你要换 Google Drive / Gmail / Calendar,要把模块 2 接入层重写。
与同类对比
| 维度 | Second Brain AI Course | LangChain / LlamaIndex Tutorial | DeepLearning.AI Short Courses | Fullstack-LLM 之类 Tutorial 仓 |
|---|---|---|---|---|
| 课程形态 | 6 模块端到端 | 工具 demo | 1-2 小时短视频系列 | 仓库代码 + 简短 README |
| 端到端 | ✅(Notion → 微调 → RAG → Agent → 观测) | ❌ 单组件 | ❌ 单点 | 部分(缺 LLMOps) |
| 训练微调 | ✅ Unsloth + Llama 3.1 8B | ❌ | 部分(LangChain QA 微调) | 不一定 |
| 进阶 RAG | ✅ contextual + parent retrieval + eval | ✅ baseline | 部分 | 不一定 |
| Agent 框架 | ✅ smolagents 实战 | ✅ LangGraph / AutoGen | ✅ 多数课程以 agent 为题 | 视课程 |
| LLMOps | ✅ ZenML + Opik + Comet 三件套 | ❌ | ❌ | 部分 |
| 数据源适配 | ✅ Notion 抽象 + 用户自适配 | 任意 | 任意 | 任意 |
| 配套文字 / 视频 | 长文(Substack/Newsletter 风格) | 文档 | 视频 + 简短笔记 | 散落 README |
| License | MIT(代码)/ 文字稿另算 | MIT | 闭源 | 多为 MIT |
| 维护节奏 | Active(2026-04 commit) | 高频 | 高频 | 不定 |
定位差别:这门课是"按 ML 工程师生产标准做一次完整项目",其他多数课是"按 demo 标准走一遍 showcase 流程"。你想拿能写进简历/船上的项目经验,这门课性价比最高;想要"2 小时速通 LLM 基础",去看 DeepLearning.AI。
一句话推荐
目前最像"LLM 应用工程师在职训练营"的免费开源课 —— 跑完一遍你就亲手交付过从数据 ETL、微调、RAG、Agent 到 LLMOps 的完整产品级代码,远胜一切 5 分钟教程。
具体动作:先读 module 0 overview 文章 + clone 仓,不要急着配环境;接着按 module 1 → 6 顺序跑,遇到陌生组件(ZenML / Opik / smolagents)单独查官方 docs;时间紧就先做 module 2 + 5 + 6(数据 ETL + 进阶 RAG + Agent 观测),这三个模块最能直接搬到你下一个 GenAI 项目里。