Open Notebook:掌控个人数据,构建私有化 AI 知识库的开源利器
-
Open Notebook:掌控个人数据,构建私有化 AI 知识库的开源利器
目录- 项目核心理念:知识不应是少数人的特权
- Open Notebook vs. Google NotebookLM:全面对比
- 技术架构深度解析
- 📐 四层架构设计
- 🧩 AI 提供商抽象层:Esperanto
- 核心功能亮点
- 🔒 隐私优先的自托管架构
- 📓 多笔记本管理
- 📄 通用内容支持
- 🎙️ 专业播客生成系统
- 🔍 智能搜索系统
- 💬 上下文感知对话
- ✍️ AI 辅助笔记
- 🔌 完整的 REST API
- 📖 清晰的引用溯源
- 安装与部署指南
- 🚀 方式一:单容器快速启动(推荐新手使用)
- 🏗️ 方式二:Docker Compose 多容器部署(推荐生产使用)
- 🖥️ 方式三:完全本地离线部署(搭配 Ollama)
- 📦 镜像获取
- 版本演进与路线图
- 📅 重要版本里程碑
- 🗺️ 未来路线图
- 竞品格局:不只有 Open Notebook
- 🏆 SurfSense
- 活跃的社区与参与方式
- 媒体与行业认可
- 小结:在拥抱 AI 的同时守住你的数据边界
在人工智能浪潮席卷全球的今天,我们越来越依赖 AI 工具来处理信息、激发灵感和加速研究。然而,这也带来了新的挑战:我们的数据隐私由谁保障?我们的研究工作流是否必须被锁定在单一的云服务商生态中?
以 Google NotebookLM 为例,它无疑是一款强大的 AI 研究助手。但当我们将个人笔记、学术论文、商业文档上传至 Google 云端时,这些数据实际上已经脱离了我们的直接掌控。对于涉及敏感信息的企业研究人员、注重数据主权的学术工作者,以及身处数据合规要求严格的行业从业者而言,这种"便利"可能意味着不可接受的风险。
为了回应这些日益增长的关切,一个名为 Open Notebook 的项目应运而生。它是一个完全开源、以隐私为核心的强大工具,旨在成为 Google NotebookLM 的理想替代品,将数据的所有权和研究的自由度重新交还给每一位用户。
📎 项目地址:https://github.com/lfnovo/open-notebook
项目核心理念:知识不应是少数人的特权
Open Notebook 的开发者 lfnovo(Nazar) 坚信,在一个由人工智能主导的世界里,独立思考和获取新知识的能力,不应成为少数人的特权,更不应被单一供应商所垄断。据开发者本人透露,他在体验了 Google NotebookLM 之后,对其在模型选择、播客定制和部署方式上的"僵化"深感失望,因此决定从零打造一个更加灵活、透明的开源替代方案。 该项目赋予用户以下核心能力:
🔒 掌控你的数据:通过自托管部署,你的所有研究资料、笔记和交互数据都安全地保存在你自己的服务器上,实现完全的数据主权。不同于将数据托管在第三方云端,Open Notebook 的自托管模式意味着你的数据永远不会离开你的基础设施——无论是个人电脑、企业内网服务器还是你自己选择的云主机。
🤖 自由选择 AI 模型:告别厂商锁定。Open Notebook 支持超过 16 家 AI 服务提供商,包括 OpenAI、Anthropic、Google、Groq、Mistral、DeepSeek、xAI、OpenRouter、VertexAI 等云端服务,以及 Ollama、LM Studio 等本地运行方案,让你可以根据成本和性能需求自由切换。这种灵活性意味着你甚至可以在完全断网的环境下,使用 Ollama 搭载本地大模型进行全部操作,实现 100% 的离线隐私保护。
📚 整合多模态内容:轻松管理和组织各种格式的研究资料,无论是 PDF 文档、网页、视频还是音频文件,乃至 Office 文档(Word、Excel 等),都能成为你知识库的一部分。据官方文档,系统支持超过 10 种主流内容格式的导入与处理。
🎙️ 生成专业级播客:内置先进的多人播客生成功能,可将你的研究内容和笔记转化为高质量的音频节目。与 Google NotebookLM 仅支持 2 位演讲者的固定模式不同,Open Notebook 支持 1-4 位演讲者的灵活配置,并提供 37 种预设风格(如"分析型"、"幽默型"、"教育型"等)和 33 种角色原型(如"主持总结者"、"专家嘉宾"、"魔鬼代言人"等),创作自由度远超同类产品。
🔍 智能搜索与对话:在你所有的内容中进行全文检索和向量搜索,并与 AI 进行上下文感知的深度对话,让 AI 成为你专属的研究助理。向量搜索(语义搜索)能够理解你查询的"意思"而非仅匹配关键词,这意味着即使你使用不同的措辞,系统也能找到语义相关的内容。
Open Notebook vs. Google NotebookLM:全面对比
为了更直观地展示 Open Notebook 的价值,我们将其与 Google NotebookLM 进行直接对比。需要注意的是,Google NotebookLM 在 2025 年底至 2026 年初经历了大量更新——包括接入完整的 Gemini 百万 token 上下文窗口、新增 Deep Research 深度研究功能、数据表格生成、思维导图、自定义人设(Personas)、输出语言选择器等功能——竞争力显著增强。因此,以下对比基于截至 2026 年 2 月的最新信息:
特性 Open Notebook Google NotebookLM 🏆 优势分析 🔒 隐私与控制 自托管,数据完全归你所有 仅限 Google 云 ✅ Open Notebook:完全的数据主权 🤖 AI 提供商选择 支持 16+ 提供商(OpenAI, Anthropic, Ollama 等) 仅限 Google Gemini 模型 ✅ Open Notebook:灵活性与成本优化 🎙️ 播客生成 支持 1-4 位演讲者,37 种风格,33 种角色原型 已升级:支持 2 位演讲者,新增更多定制选项 ✅ Open Notebook:极高的创作灵活性 🎯 上下文控制 3 个精细的控制级别 已改进:全量百万 token 上下文窗口,支持自定义 Personas ⚖️ 各有所长 🔄 内容转换 内置和自定义的转换功能 新增:数据表格生成、思维导图、幻灯片 ⚖️ 各有所长 🔌 API 访问 提供完整的 REST API(FastAPI + Swagger 文档) 可通过 Gemini App 集成间接使用 ✅ Open Notebook:实现完全自动化 🚀 部署方式 Docker、云端或本地,支持完全离线 仅限 Google 托管 ✅ Open Notebook:随处部署的自由 📖 引用与溯源 全面且来源清晰,编号式引用 已改进:基础引用功能增强 ✅ Open Notebook:保证研究的完整性 🔧 可定制性 完全开源(MIT 许可证),可任意修改 封闭系统 ✅ Open Notebook:无限的扩展潜力 💰 成本 仅为你使用的 AI 付费(按需计费) 分层定价:免费版 / Plus / Business / AI Ultra ✅ Open Notebook:透明且可控的成本 🔍 搜索能力 全文搜索 + 向量语义搜索 新增:Deep Research 深度研究功能 ⚖️ 各有所长 🌐 离线使用 ✅ 支持(搭配 Ollama + 本地 TTS) ❌ 不支持 ✅ Open Notebook 👥 多用户支持 ❌ 暂不支持(单用户应用) ✅ 支持(含企业版团队协作) ✅ Google NotebookLM 🗣️ 语言支持 v1.5.0 新增 i18n 国际化,支持简体中文等多语言 支持多语言输出 ⚖️ 各有所长 📌 客观总结: Open Notebook 在 隐私控制、模型自由度、部署灵活性、API 能力和成本透明度 方面具有决定性优势;而 Google NotebookLM 则在 开箱即用的便捷性、多用户协作、以及持续快速迭代的新功能(如 Deep Research、思维导图、数据表格等) 方面表现更强。选择哪一个,取决于你是更看重 自主可控,还是更看重 即开即用的生态整合。
技术架构深度解析
理解 Open Notebook 的技术架构,有助于我们更好地评估它的能力边界和扩展潜力。以下是其核心技术栈的分层解读:
📐 四层架构设计
Open Notebook 采用了清晰的四层架构设计,每一层各司其职:
┌─────────────────────────────────────────────┐ │ 🖥️ 前端层 (Port 8502) │ │ Next.js 15 / React 应用 │ │ v1.1+ 自动代理 /api/* 请求到后端 │ ├─────────────────────────────────────────────┤ │ ⚙️ 后端层 (Port 5055) │ │ FastAPI REST API │ │ LangGraph 工作流引擎 │ │ /docs 自动生成 OpenAPI 文档 │ ├─────────────────────────────────────────────┤ │ 🗄️ 数据层 (Port 8000) │ │ SurrealDB v2 多模型数据库 │ │ 图关系 · 向量搜索 · 全文搜索 │ ├─────────────────────────────────────────────┤ │ 🔄 后台任务层 │ │ surreal-commands (v1.2.0+) │ │ 异步处理 · 重试逻辑 · 指数退避 │ │ 向量化 · 内容处理 · 播客生成 │ └─────────────────────────────────────────────┘各层关键技术说明:
- ⚛️ 前端层:项目最初使用 Python 的 Streamlit 框架构建界面,后在社区推动下完成了向 Next.js 15 / React 的全面迁移,带来了更流畅的用户体验和更强的前端可定制性。内置 Cmd/Ctrl+K 命令面板(Command Palette),方便快速导航。
- 🐍 后端层:基于 Python 的 FastAPI 框架,提供高性能的异步 REST API。业务逻辑通过 LangGraph 工作流引擎编排——LangGraph 是 LangChain 团队开发的开源 AI 代理编排框架,它使用图结构(Graph)来建模 AI 工作流中各组件之间的关系,使得聊天、问答、内容转换和来源处理等复杂流程得以可靠运行。
- 🗄️ 数据层:采用 SurrealDB v2 作为核心数据库——这是一款创新的多模型数据库,同时支持关系型、文档型和图数据库的特性。在 Open Notebook 中,它同时承担了图关系管理(如文档之间的引用边、笔记与来源的关联边)、向量搜索(
fn::vector_search)和全文搜索(fn::text_search)三重职责,避免了引入多个数据库的复杂性。 - 🔄 后台任务层:基于 surreal-commands(v1.2.0+)构建,内置重试逻辑和指数退避(exponential jitter backoff)策略,确保向量化、内容处理、播客生成等耗时操作的可靠执行。
🧩 AI 提供商抽象层:Esperanto
Open Notebook 之所以能够无缝对接 16+ AI 提供商,核心在于其使用了 Esperanto 抽象库(v2.8.3+)。Esperanto 作为中间层,将各家 AI 服务商的差异化 API 统一封装为 LangChain 兼容的标准接口(如
BaseChatModel、Embeddings)。这意味着:- 切换 AI 提供商无需修改业务代码——只需在配置中更改模型名称即可
- 内置 tiktoken 进行 token 计数,并在对话超出模型上下文窗口时自动升级到大上下文变体
- 每个聊天会话支持
model_override字段,允许在会话级别指定自定义模型
支持的提供商完整列表:
类别 提供商 ☁️ 云端 LLM OpenAI、Anthropic、Google、Groq、Mistral、DeepSeek、xAI、OpenRouter、VertexAI 🖥️ 本地 LLM Ollama、LM Studio 🔤 专用嵌入 VoyageAI 🗣️ 语音合成 (TTS) ElevenLabs、OpenAI 兼容 TTS(支持本地 TTS 服务器如 Speaches) 核心功能亮点
Open Notebook 围绕一个直观的三栏式界面构建,让你的研究工作流清晰高效:
栏位 功能 说明 📁 来源 (Sources) 左侧栏 管理你所有的研究材料,支持拖拽上传 📝 笔记 (Notes) 中间栏 手动撰写或由 AI 生成结构化的笔记 💬 聊天 (Chat) 右侧栏 基于选定的来源和笔记与 AI 对话 以下是各项功能的详细说明:
🔒 隐私优先的自托管架构
你的敏感研究数据完全私有,不依赖任何第三方云服务。所有数据存储在 SurrealDB 的本地持久化卷中,通过 Docker 卷映射(
notebook_data和surreal_data)实现数据持久化。即使容器停止或重启,数据也不会丢失。系统还支持通过OPEN_NOTEBOOK_PASSWORD环境变量配置访问密码,增加一层安全防护。📓 多笔记本管理
为不同的研究项目创建独立的笔记本,保持工作区的整洁。每个笔记本都拥有独立的来源集合、笔记集合和聊天历史,不同项目之间的数据完全隔离,避免信息交叉污染。
📄 通用内容支持
支持 PDF、视频、音频、网页、Office 文档等多种格式。系统在导入内容后会自动进行内容提取和向量化处理,后者由后台任务层异步完成,不会阻塞用户界面。v1.4.0 版本将文件上传限制从 10MB 提升至 100MB,显著增强了大文件处理能力。
🎙️ 专业播客生成系统
这是 Open Notebook 最具特色的功能之一,也是它与 Google NotebookLM 拉开差距最大的领域。其播客生成系统的技术实现相当精巧:
- 📋 情节配置文件 (Episode Profiles):定义播客的整体风格,包括名称、描述、大纲提供商/模型、文稿提供商/模型、默认简报和分段数量等
- 🎭 演讲者配置 (Speaker Profiles):为每位演讲者定义 TTS 提供商、TTS 模型、声音 ID、背景故事和性格特征
- 🎨 37 种预设风格:分析型、幽默型、教育型、技术型、调查型、哲学型等
- 🧑🤝🧑 33 种角色原型:主持总结者、专家嘉宾、魔鬼代言人、主持人、分析师、研究员等
- 💡 23 种互动方法:反问句、趣闻轶事、幽默、讲故事、挑衅性发言等
- 🎚️ 创造力参数:0-1 之间的连续可调数值,精确控制生成内容的创意程度
- 🔧 可配置 TTS 并发:通过
TTS_BATCH_SIZE环境变量控制并行音频生成,防止 TTS 提供商限速 - 🌐 完全离线播客生成:将 TTS 提供商设为 "openai" 并通过
OPENAI_COMPATIBLE_BASE_URL_TTS指向本地 TTS 服务器(如 Speaches),即可在完全断网的环境下生成播客
底层实现上,播客生成系统委托给了 podcastfy 库来处理,生成的 MP3 文件存储在
{DATA_FOLDER}/podcasts/audio/目录下。🔍 智能搜索系统
跨所有内容进行快速的全文和语义向量搜索。Open Notebook 同时提供两种搜索模式:
- 📝 全文搜索 (
fn::text_search):传统的关键词匹配搜索,适合精确查找已知术语 - 🧠 向量语义搜索 (
fn::vector_search):基于嵌入模型(Embedding Model)将文本转化为高维向量,通过计算向量之间的余弦相似度来发现语义相关的内容——即使查询词和文档中的用词完全不同
两种搜索模式互补配合,确保你不会遗漏任何相关信息。
💬 上下文感知对话
AI 对话始终基于你提供的研究材料,确保答案的相关性和准确性。Open Notebook 提供了 3 个精细的上下文控制级别,让你可以精确决定 AI 在回答问题时可以"看到"哪些内容。这不仅关乎隐私——在某些场景下,限制上下文范围反而能提升 AI 回答的精准度,因为它不会被无关信息干扰。此外,系统还支持 DeepSeek-R1、Qwen3 等推理模型,为复杂问题提供更深层次的分析。
✍️ AI 辅助笔记
一键生成内容摘要或从对话中提炼见解。笔记生成功能基于 LangGraph 的内容转换工作流(Transformation Workflow),用户可以使用内置转换模板,也可以自定义转换逻辑——例如,你可以要求 AI 将一篇长文转换为要点摘要、学术风格的文献综述,或特定格式的会议纪要。
🔌 完整的 REST API
所有功能均可通过 API 调用,方便你进行自动化和自定义集成。API 基于 FastAPI 构建,默认运行在
http://localhost:5055,提供 Swagger UI 交互式文档(/docs端点),方便实时测试。主要端点覆盖聊天、笔记本、来源、笔记等全部功能模块。其中/ask端点支持 Server-Sent Events (SSE) 流式响应;播客生成和来源处理等长时间操作则采用异步模式,立即返回命令 ID 供轮询状态。📖 清晰的引用溯源
AI 生成的每一个答案都能追溯到原始来源,确保研究的严谨性。系统采用编号式引用标注(如 [1]、[2]),在 v1.1.0 版本中进一步优化为紧凑型聊天引用格式,让引用信息更加清晰且不占用过多屏幕空间。
安装与部署指南
Open Notebook 提供多种部署方式,从"两分钟快速体验"到"生产级多容器部署",可以满足不同层次用户的需求:
🚀 方式一:单容器快速启动(推荐新手使用)
最简单的方式是使用单容器 Docker 镜像
lfnovo/open_notebook:v1-latest-single,它将前端、API、后台任务和 SurrealDB 全部打包在一个容器中。只需一条命令即可启动:docker run -d \ -p 8502:8502 \ -p 5055:5055 \ -v notebook_data:/app/data \ -v surreal_data:/mydata \ lfnovo/open_notebook:v1-latest-single⚠️ 注意:必须挂载
-v卷,否则容器停止时所有笔记和研究数据将丢失。🏗️ 方式二:Docker Compose 多容器部署(推荐生产使用)
多容器模式将 SurrealDB 和应用程序分离部署,更适合生产环境:
- SurrealDB 服务:使用
surrealdb/surrealdb:v2镜像,基于 RocksDB 持久化存储 - 应用服务:使用
lfnovo/open_notebook:v1-latest镜像 - 端口映射:Web UI → 8502,API → 5055,SurrealDB → 8000
💡 Linux 用户提示:SurrealDB 默认以非 root 用户运行,而 Docker 创建绑定挂载目录时使用 root 权限,这可能导致权限冲突。解决方法是在 Docker Compose 配置中为 SurrealDB 服务添加
user: root。🖥️ 方式三:完全本地离线部署(搭配 Ollama)
对于需要完全离线使用的场景,可以结合 Ollama 进行本地部署,无需任何 API 密钥:
- 安装 Docker 和 Ollama
- 下载一个本地模型(如
ollama pull llama3) - 通过环境变量将 Ollama 端点配置为
http://ollama:11434 - 启动容器,即可在完全断网环境下运行
📦 镜像获取
所有镜像同时发布在两个仓库:
仓库 地址 适用场景 Docker Hub lfnovo/open_notebook默认选择 GitHub Container Registry ghcr.io/lfnovo/open-notebookDocker Hub 受限地区或偏好 GitHub 工作流的用户 版本演进与路线图
了解 Open Notebook 的版本发展历程,有助于我们理解项目的成熟度和发展方向:
📅 重要版本里程碑
版本 发布时间 关键更新 首个非 Alpha 版本 2025 年 10 月 项目正式可用,功能已相当完整 v1.1.0 2025 年 10 月 24 日 UI/UX 大幅改进、Azure OpenAI 支持、Cmd/Ctrl+K 命令面板、紧凑型引用 v1.3.0 2025 年底 代码结构全面重构、文档体系大修 v1.3.1 2026 年 1 月 10 日 维护版本:Bug 修复、文档优化、开发工作流增强 v1.4.0 2026 年 1 月 14 日 文件上传能力增强(最大 100MB)、离线部署优化、新用户引导改进 v1.5.0 2026 年初 Dockerfile 重构为 3 阶段构建(更好的缓存)、国际化(i18n)支持:简体中文及更多语言 🗺️ 未来路线图
项目路线图清晰,仍在活跃开发中:
- 🔄 实时更新与增强异步处理:进一步提升界面响应速度和后台任务效率
- 🔗 跨笔记本共享来源:在不同研究项目中复用已有的研究材料,避免重复导入
- 👥 多用户支持:目前 Open Notebook 是单用户应用(这是当前最大的功能缺口之一),未来计划增加多用户协作能力
- 🌐 持续的国际化拓展:增加更多语言支持
竞品格局:不只有 Open Notebook
在开源 NotebookLM 替代品这一赛道上,Open Notebook 并非唯一的选手。了解竞品有助于你做出更全面的选择:
🏆 SurfSense
根据 OpenAlternative 的排名,Open Notebook 和 SurfSense 是目前最受关注的两个开源 NotebookLM 替代品。两者定位有所不同:
维度 Open Notebook SurfSense 核心定位 隐私优先的 AI 知识库 / 笔记工具 AI 研究代理 + 知识管理平台 AI 模型支持 16+ 提供商 150+ 大语言模型 外部集成 以文件导入为主 广泛集成:Slack、Notion、GitHub、Discord、Gmail、Linear、Jira、Google Drive 等 20+ 播客生成 ✅ 1-4 人,高度可定制 ✅ 支持,约 20 秒生成 3 分钟音频 搜索架构 全文 + 向量搜索 两层 RAG 架构 + 混合搜索 + Reranker 浏览器扩展 ❌ ✅ 支持保存动态页面(含登录后页面) 团队协作 ❌ 单用户 ✅ 支持实时协作 技术栈 Python + FastAPI + Next.js + SurrealDB 独立技术栈 📌 简要评价:如果你最看重隐私控制和播客生成的深度定制能力,Open Notebook 是更好的选择;如果你需要与大量外部工具集成并进行团队协作,SurfSense 可能更适合你。
活跃的社区与参与方式
Open Notebook 背后拥有一个充满活力的开源社区,项目处于非常活跃的开发阶段(几乎每周都有新提交)。以下是参与社区的主要方式:
渠道 用途 链接 💬 Discord 服务器 获取帮助、分享工作流创意、与其他用户交流 项目 README 中获取邀请链接 🐛 GitHub Issues 报告 Bug、请求新功能 github.com/lfnovo/open-notebook/issues 🔀 GitHub Pull Requests 贡献代码 github.com/lfnovo/open-notebook/pulls 📖 Product Hunt 了解项目动态和用户评价 搜索 "Open Notebook" 开发者特别欢迎以下方面的社区贡献:
- ⚛️ 前端开发:改进 Next.js/React UI
- 🧪 测试与 Bug 修复:提升项目稳定性
- 🔧 功能开发:实现路线图中的新功能
- 📝 文档完善:帮助更多新用户上手
项目采用 MIT 许可证,这是最宽松的开源许可证之一,意味着你可以自由地使用、修改和分发代码,包括商业用途。
媒体与行业认可
Open Notebook 已获得多家知名技术媒体的报道和推荐,这在一定程度上验证了项目的价值和影响力:
- 📰 KDnuggets(数据科学领域权威媒体):专文介绍 Open Notebook 作为"真正的开源隐私优先 NotebookLM 替代品"
- 🔧 The New Stack(开发者技术媒体):发布了详细的部署教程
- 🌐 mydeveloperplanet.com:专文分析 Open Notebook 作为"Google NotebookLM 的安全替代方案"
- 🏆 OpenAlternative:将 Open Notebook 列为最佳开源 NotebookLM 替代品
- 🚀 Product Hunt:成功上线并获得社区关注
- 🐳 Docker Hub:官方镜像持续维护和更新
小结:在拥抱 AI 的同时守住你的数据边界
Open Notebook 代表了一种哲学:在拥抱 AI 强大能力的同时,坚守个人数据主权和选择的自由。对于需要深度处理信息的知识工作者,Open Notebook 提供了一个安全、灵活且功能强大的私有化解决方案。
当然,我们也需要客观地看待它的局限性:作为一个相对年轻的开源项目(首个稳定版本发布于 2025 年 10 月),它在多用户协作、开箱即用的便捷性、以及功能丰富度方面,与 Google NotebookLM 这样拥有庞大工程团队的商业产品相比仍有差距。但正是这种"不完美",恰恰体现了开源的力量——它的每一次改进都来自社区的真实需求,它的发展方向由用户而非商业利益决定。
如果你满足以下条件之一,Open Notebook 值得认真考虑:
- ✅ 你需要处理涉及敏感信息的研究资料,不希望数据离开你的基础设施
- ✅ 你想要自由选择和切换 AI 模型,而不是被绑定在单一厂商的生态中
- ✅ 你需要通过 API 将 AI 知识库集成到自己的工作流或产品中
- ✅ 你对播客生成有超越"两人对话"的高级定制需求
- ✅ 你需要在离线或网络受限的环境中使用 AI 知识库
- ✅ 你是一名开发者,希望深入理解并改造 AI 知识库的底层实现
📎 项目地址:https://github.com/lfnovo/open-notebook
📚 参考资料与延伸阅读
歡迎留言回复交流。
Log in to reply.