open-notebook
lfnovo/open-notebook加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

如果你做过调研,一定遇到过这个场景:把一堆 PDF、网页、YouTube 视频丢进 Google NotebookLM,它生成的「Audio Overview」播客确实好用——但所有资料都躺在 Google 的服务器上,而且只能用 Gemini。对于涉及客户资料、专利检索、内部竞品分析的工作,这让「用得顺手」和「敢用」之间隔着一道鸿沟。
Open Notebook 就是冲着这道鸿沟来的。作者 Luis Novo(lfnovo)在 2024 年 10 月立项,动机很直接:既然 NotebookLM 的交互范式被验证了,为什么不能自己部署一份?两年时间,这个项目从个人实验长成了 41,300 星、87 位贡献者参与的开源项目,版本号走到 v1.15.0,CHANGELOG 有 10 万字符。
把它想象成「自托管版 NotebookLM」,但比 NotebookLM 多三样东西:模型不绑定、播客可定制、数据不出门。
它保留了 NotebookLM 的核心心智模型——建一个 notebook(笔记本),挂载若干 sources(来源),系统自动切分、向量化、索引,然后你可以跟这堆材料对话、生成笔记、提炼洞察、或者产出播客。这条链路本身没什么玄学,RAG 的标准玩法。
真正的差异在三处:
模型可选。 内置 20+ 家供应商,OpenAI、Anthropic、Google、Mistral、Groq、xAI、DeepSeek、OpenRouter、ElevenLabs、Deepgram、Azure、Vertex、MiniMax、通义千问等等都在列表里,外加任意 OpenAI 兼容端点——Ollama、LM Studio、vLLM 都能接。这意味着同一个工作台,可以上午用云端 Opus 写脚本、下午切到本地模型跑敏感批次,成本和合规都由自己权衡。README 里明确写「open-weight models are licensed under Apache 2.0」,模型权重协议也交代得清楚。
播客可定制。 这是 Open Notebook 最被称赞的能力。NotebookLM 的音频概览锁死两个主持人、单一深潜风格;Open Notebook 的 Episode Profile 允许定义 1-4 个说话人,每个说话人有独立的音色(任意 TTS 供应商的 voice ID)、独立的人格提示词,还能配长度模板、开场白、结尾白。有评测者用三个角色(怀疑者、乐观者、主持人)配三个不同 ElevenLabs 音色,把一份融资 BP 加上一条 Hacker News 帖子,产出了 14 分钟三方辩论播客。NotebookLM 做不到这件事。
数据不出门。 用 Ollama 时,资料连 API 都不出。

技术栈直接写在 README 里:Python、FastAPI、Next.js、React、SurrealDB。
后端是 FastAPI + LangChain/LangGraph,前端是 Next.js 14 + React + Tailwind + shadcn/ui(Radix UI 组件、React Query、TanStack),数据库选的是 SurrealDB v2——同时提供关系存储和向量存储,这解释了为什么它只跑两个容器就能起完整功能。整个后端跑在 supervisord 下面,前端由 start-server.js 托管。
Dockerfile 写得很讲究,用多阶段构建同时产出两种镜像变体:runtime(常规多容器,SurrealDB 外置)和 single(应用与数据库合一)。前端构建阶段用 Node 22 slim,后端用 Python 3.12 slim + uv 装依赖,还特意把 tiktoken 的编码缓存预下载好放在 /app/tiktoken-cache(放在 /app/data 之外,避免数据卷挂载把它盖掉),解决离线环境下的 issue #264。
docker-compose.yml 里默认跑两个服务:
services:
surrealdb:
image: surrealdb/surrealdb:v2
ports:
- "127.0.0.1:8000:8000" # 仅本地,避免默认 root:root 暴露
open_notebook:
image: lfnovo/open_notebook:v1-latest
ports:
- "8502:8502" # Web UI
- "5055:5055" # REST API
安全细节值得点赞:SurrealDB 只绑 127.0.0.1,默认凭据 root:root 带着注释说明「暴露到网络前务必改」;API Key 用 OPEN_NOTEBOOK_ENCRYPTION_KEY 加密后存库;README 直接提示 UI 和 API 默认监听所有网卡且没有密码,共享服务器场景要改成 127.0.0.1:8502:8502 或加 OPEN_NOTEBOOK_PASSWORD。
有部署经验的人都清楚,RAG 类应用的内存曲线取决于你切了多少 chunk。
实测数据来自一位在 Hetzner CX22(4GB RAM、2 vCPU)上跑了一周 v1-latest 镜像的评测者:SurrealDB v2 吃内存,2GB 机器在超过约 500 个 chunk 时会 OOM,4GB 是舒服的起点,严肃归档场景建议 8GB 起步并配 SSD 卷。
不过用 OpenAI 兼容端点时不吃本地算力,纯 CPU 也能跑。开源项目自己也给了提示:单 GPU 或本地 LLM 场景下设 OPEN_NOTEBOOK_WORKER_MAX_TASKS=1,让后台任务串行执行,避免并发压垮模型。
可选的重量级运行时默认关闭,按需开:
- OPEN_NOTEBOOK_ENABLE_DOCLING=true # Docling 引擎 + OCR + 图片解析(大型 ML 栈)
- OPEN_NOTEBOOK_ENABLE_CRAWL4AI=true # 本地 Crawl4AI(会捆绑 Chromium)
装上 Docling 的话,硬件门槛会明显抬升——这是选装,但装了就别指望 4GB 小机器。
测试密度罕见地高。 tests 目录 71 个测试文件,覆盖加密、播客路径穿越、SSL 配置、上传 TOCTOU 竞态、Vertex 凭证文件泄露、URL 校验、类型化异常传播等安全相关路径。对一个两年前起步的独立项目来说,这个投入程度超出预期。
接口设计干净。 5055 端口的完整 REST API 让自动化摄入、批量转换、编排播客生成成为可能——这是 NotebookLM 给不了的。
多语言 UI 覆盖到 15 种,包括简体中文、繁体中文、日语、韩语、俄语、孟加拉语、加泰罗尼亚语、波兰语。
零供应商锁定。 换模型只是改配置,笔记和来源数据是你的。
安装不是即插即用。 有评测者在 Chromebook 上手动装,折腾了几个小时、试了两次才成功;Windows 上靠 Docker Desktop 半小时搞定。独立评测者的结论很直接:「Open Notebook 绝对值得一试,但前提是你不介意折腾设置」。这跟 README 里「三步 30 秒」的乐观叙事有落差——README 讲的是 happy path。
引用精度不如 NotebookLM。 v1 只能给到来源级别的引用,没有 NotebookLM 那种精确回溯到 PDF 页码或 YouTube 时间戳的行内高亮。官方 roadmap 承认在做,但当前是缺口。
播客质量见仁见智。 多说话人是加分项,但默认时长比 NotebookLM 的 8-15 分钟短,通常只有几分钟,要手动调到 30 分钟以上;而且有评测者认为音质和内容深度仍略逊于 NotebookLM。
成本并没有真的省掉。 用云端模型的话,每次生成都要付费。有人实测一集 20 分钟播客花了 0.82 美元(Opus 写脚本 0.68 + OpenAI TTS 0.14),其中 16 分钟花在音频渲染上——脚本两分钟就写完,剩下的都是 TTS 串行批处理的时间。NotebookLM 免费版每天 3 次音频概览,反而更划算。
认证是单密码。 只有可选的单密码保护,没有多用户和 RBAC。团队部署必须自己在前面套 Caddy + Authelia 或者 Tailscale 这类方案。
语音转写默认不走本地。 Whisper STT 默认走云端供应商(OpenAI/Groq/Deepgram),要完全离线得自己接 OpenAI 兼容的 Whisper 服务(比如 faster-whisper-server、FunASR),官方 Ollama 示例不含 STT。
文档薄。 Episode Profile 的数据模型好,但文档假设你「从内置示例里学」,想搞清全部参数得读源码。
从 28,152 星一周涨 3,891 星、冲到 Python 周榜前 15 的曲线看,这不是一个渐进式增长的项目,而是一次集中的爆发。时机也讲得通:NotebookLM 证明了「材料 + AI + 对话 + 播客」这套交互是对的,而这个组合此前被锁在单一云厂商的围墙里。
有意思的是,生态位置在 NotebookLM 和本地 LLM 工具之间。它不是「又一个 RAG 框架」——LangGraph 那套编排能力是拿来用的,不是拿来卖的;它的卖点是把 NotebookLM 的产品形态完整搬出来,并补上多模型、多说话人、本地部署三件事。
有评测者给出了一个值得引用的对比框架:如果你喜欢 NotebookLM 的音频概览、又不想数据躺在 Google 服务器上,Open Notebook 是当前最完整的自托管替代品;如果你要的是开箱即用和最佳体验,NotebookLM 仍然略胜。
对企业的现实意义在合规边界:把敏感资料交给云模型前,Open Notebook 提供了一条「同一个工作台,云端和本地随意切换」的路径。研发情报、客户尽调、竞品分析这类场景,这比省下的那点订阅费值钱得多。
OPEN_NOTEBOOK_ENCRYPTION_KEY,并把 8502/5055 绑到 127.0.0.1 或加密码MIT 协议,无供应商锁定,Docker Compose 三分钟起服务。对做开源情报追踪、内部知识库、竞品研究的人来说,这是一个值得放进候选清单的项目。