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 个具体痛点:

  1. 没有从零到生产的工程路径:Notebook 教程多但生产化的工程实践少。学完能从需求 → 数据 pipeline → 训练 → 部署 → 在线推理各环节都亲手跑过。
  2. RAG 在真实数据上跑不动:常识 demo 上 RAG 表现良好,真实 Notion / 网页文档上 retrieval 召回崩坏;本课专门讲 contextual retrieval、parent retrieval 这些进阶 RAG 范式,并用 Opik 做评测对比。
  3. 微调这件事"看似容易做难":Unsloth + Llama 3.1 8B + HuggingFace Dedicated Endpoints 一条龙,把"如何从无标注数据蒸馏出指令集 → 微调 → 上线服务"做了一遍。
  4. 没有 LLMOps 习惯:很多人跑 RAG 不写观测、不评估、不记录实验。本课强制 ZenML(编排)+ Opik(LLM eval)+ Comet(训练追踪)三件套。
  5. 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-offlineapps/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

做的事:

  1. :Notion API → 原始 blocks(也支持自定数据库);
  2. 清洗:HTML 转 markdown、抓链接里的 PDF/网页正文(大规模爬取);
  3. 打分:用 LLM + heuristic 给每条文档算 quality score,做后过滤;
  4. :放进 MongoDB(文档库)+ ChromaDB / Qdrant(向量库,按代码当前实现为准)。
cd apps/second-brain-offline
uv run python -m second_brain_offline.pipelines.ingest   # 具体模块名以代码为准
# 进度由 ZenML 在 dashboard 上显示

模块 3 —— 蒸馏训练集

同样在 apps/second-brain-offline

  1. 用模块 2 处理好的高质量文档;
  2. 用 GPT-4 之类的强模型对每篇生成结构化摘要,蒸馏成 instruct dataset;
  3. 落盘成 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 项目里。