open-notebook
开源版 Notebook LM,提供自托管、隐私优先的 AI 笔记与知识管理体验。支持 18+ LLM 供应商(含本地 Ollama)、多模态内容(PDF、视频、网页等)、智能搜索与多 speaker 播客生成,核心功能对标 Google 原版并超越。亮点是完全掌控数据、模型自由切换、可 docker 一键部署,适合注重隐私和定制化的团队或个人使用。
README
Open Notebook
一款开源、关注隐私的 Google Notebook LM 替代品!
加入我们的 Discord 服务器 获取帮助、分享工作流思路、提出功能建议!
查看我们的网站 »
📚 开始使用
·
📖 用户指南
·
✨ 功能特性
·
🚀 部署
一个私有、多模型、100% 本地、功能全面的 Notebook LM 替代品

在一个由人工智能主导的世界里,拥有思考 🧠 和获取新知 💡 的能力,不应是少数人的特权,也不应受限于单一供应商。
Open Notebook 让您能够:
- 🔒 控制您的数据 - 保持研究的私密与安全
- 🤖 选择您的 AI 模型 - 支持 18+ 供应商,包括 OpenAI、Anthropic、Ollama、LM Studio 等
- 📚 组织多模态内容 - PDF、视频、音频、网页等
- 🎙️ 生成专业播客 - 先进的多说话人播客生成
- 🔍 智能搜索 - 跨所有内容的全文搜索和向量搜索
- 💬 上下文聊天 - 由您的研究驱动的 AI 对话
- 🌐 多语言界面 - 支持英语、葡萄牙语、简体中文、繁体中文、日语、俄语和孟加拉语
在 https://www.open-notebook.ai 了解更多项目信息
🆚 Open Notebook 与 Google Notebook LM 对比
| 特性 | Open Notebook | Google Notebook LM | 优势 |
|---|---|---|---|
| 隐私与控制 | 自托管,数据由您控制 | 仅限 Google 云端 | 完全的数据主权 |
| AI 供应商选择 | 18+ 供应商 (OpenAI、Anthropic、Ollama、LM Studio 等) | 仅限 Google 模型 | 灵活性与成本优化 |
| 播客说话人 | 1-4 个说话人,支持自定义说话人档案 | 仅 2 个说话人 | 极高的灵活性 |
| 内容转换 | 自定义与内置转换 | 有限选项 | 无限的处理能力 |
| API 访问 | 完整的 REST API | 无 API | 完全自动化 |
| 部署方式 | Docker、云端或本地 | 仅 Google 托管 | 可部署在任何位置 |
| 引用 | 基础引用(将改进) | 包含来源的全面引用 | 研究完整性 |
| 可定制性 | 开源,完全可定制 | 封闭系统 | 无限扩展性 |
| 成本 | 仅支付 AI 使用费用 | 免费层 + 月度订阅 | 透明可控 |
为什么选择 Open Notebook?
- 🔒 隐私至上:您的敏感研究保持完全私密
- 💰 成本可控:选择更便宜的 AI 供应商或使用 Ollama 本地运行
- 🎙️ 更好的播客:完整的脚本控制与多说话人灵活性,对比有限的双人深入模式
- 🔧 无限定制:按需修改、扩展和集成
- 🌐 无供应商锁定:切换供应商、任意部署、拥有数据
技术栈
🚀 快速开始(2 分钟)
前置条件
- 已安装 Docker Desktop
- 搞定!(API 密钥稍后在界面中配置)
步骤 1:获取 docker-compose.yml
选项 A:直接下载
curl -o docker-compose.yml https://raw.githubusercontent.com/lfnovo/open-notebook/main/docker-compose.yml
选项 B:手动创建
将以下内容复制到一个名为 docker-compose.yml 的新文件中:
services:
surrealdb:
image: surrealdb/surrealdb:v2
command: start --log info --user root --pass root rocksdb:/mydata/mydatabase.db
user: root
ports:
- "8000:8000"
volumes:
- ./surreal_data:/mydata
restart: always
open_notebook:
image: lfnovo/open_notebook:v1-latest
ports:
- "8502:8502"
- "5055:5055"
environment:
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
- SURREAL_URL=ws://surrealdb:8000/rpc
- SURREAL_USER=root
- SURREAL_PASSWORD=root
- SURREAL_NAMESPACE=open_notebook
- SURREAL_DATABASE=open_notebook
volumes:
- ./notebook_data:/app/data
depends_on:
- surrealdb
restart: always
步骤 2:设置加密密钥
编辑 docker-compose.yml,将以下行:
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
改为任意秘密值(例如 my-super-secret-key-123)
步骤 3:启动服务
docker compose up -d
等待 15-20 秒,然后打开:http://localhost:8502
步骤 4:配置 AI 供应商
- 前往 设置 → API 密钥
- 点击 添加凭证
- 选择您的供应商(OpenAI、Anthropic、Google 等)
- 粘贴您的 API 密钥并点击 保存
- 点击 测试连接 → 发现模型 → 注册模型
完成!您现在可以创建第一个笔记本了。
需要 API 密钥? 可从以下地址获取: OpenAI · Anthropic · Google · Groq(免费层)
想要免费的本地 AI? 参见 examples/docker-compose-ollama.yml 了解 Ollama 配置
📚 更多安装选项
- 搭配 Ollama(免费本地 AI) - 本地运行模型,无需 API 费用
- 从源代码安装(开发者) - 用于开发和贡献
- 完整安装指南 - 所有部署场景
📖 需要帮助?
- 🤖 AI 安装助手:帮助您安装的 CustomGPT
- 🆘 故障排除:5 分钟故障排除指南
- 💬 社区支持:Discord 服务器
- 🐛 报告问题:GitHub Issues
星标历史图
供应商支持矩阵
得益于 Esperanto 库,我们开箱即支持以下供应商!
| 供应商 | LLM 支持 | Embedding 支持 | 语音转文字 | 文字转语音 |
|---|---|---|---|---|
| OpenAI | ✅ | ✅ | ✅ | ✅ |
| Anthropic | ✅ | ❌ | ❌ | ❌ |
| Groq | ✅ | ❌ | ✅ | ❌ |
| Google (GenAI) | ✅ | ✅ | ✅ | ✅ |
| Vertex AI | ✅ | ✅ | ❌ | ✅ |
| Ollama | ✅ | ✅ | ❌ | ❌ |
| Perplexity | ✅ | ❌ | ❌ | ❌ |
| ElevenLabs | ❌ | ❌ | ✅ | ✅ |
| Deepgram | ❌ | ❌ | ❌ | ✅ |
| Azure OpenAI | ✅ | ✅ | ✅ | ✅ |
| Mistral | ✅ | ✅ | ✅ | ✅ |
| DeepSeek | ✅ | ❌ | ❌ | ❌ |
| Voyage | ❌ | ✅ | ❌ | ❌ |
| xAI | ✅ | ❌ | ❌ | ✅ |
| OpenRouter | ✅ | ✅ | ❌ | ❌ |
| DashScope (Qwen) | ✅ | ❌ | ❌ | ❌ |
| MiniMax | ✅ | ❌ | ❌ | ❌ |
| 兼容 OpenAI* | ✅ | ✅ | ✅ | ✅ |
*支持 LM Studio 和任何兼容 OpenAI 的端点
✨ 关键特性
核心能力
- 🔒 隐私优先:您的数据始终由您控制——无需云端依赖
- 🎯 多笔记本组织:无缝管理多个研究项目
- 📚 通用内容支持:PDF、视频、音频、网页、Office 文档等
- 🤖 多模型 AI 支持:18+ 供应商,包括 OpenAI、Anthropic、Ollama、Google、LM Studio 等
- 🎙️ 专业播客生成:使用播客档案(Episode Profiles)实现先进的多说话人播客
- 🔍 智能搜索:跨所有内容的全文搜索和向量搜索
- 💬 上下文感知聊天:由您的研究资料驱动的 AI 对话
- 📝 AI 辅助笔记:生成洞察或手动撰写笔记
高级特性
- ⚡ 推理模型支持:完全支持 DeepSeek-R1 和 Qwen3 等思考模型
- 🔧 内容转换:强大的可自定义操作,用于总结和提取洞察
- 🌐 完整 REST API:面向自定义集成的完整编程访问
- 🔐 可选密码保护:使用身份验证保护公开部署
- 📊 精细上下文控制:精确选择与 AI 模型共享的内容
- 📎 引用:获取附带正确源引用的答案
播客功能
📚 文档
开始使用
- 📖 简介 - 了解 Open Notebook 的功能
- ⚡ 快速开始 - 5 分钟内运行起来
- 🔧 安装 - 全面安装指南
- 🎯 您的第一个笔记本 - 分步教程
用户指南
高级主题
- 🎙️ 播客生成 - 创建专业播客
- 🔧 内容转换 - 自定义内容处理
- 🤖 AI 模型 - AI 模型配置
- 🔌 MCP 集成 - 与 Claude Desktop、VS Code 及其他 MCP 客户端连接
- 🔧 REST API 参考 - 完整 API 文档
- 🔐 安全 - 密码保护与隐私
- 🚀 部署 - 所有场景的完整部署指南
(回到顶部)
🗺️ 路线图
即将推出的功能
- 实时前端更新:实时 UI 更新,体验更流畅
- 异步处理:通过异步内容处理提升 UI 响应速度
- 跨笔记本来源:跨项目复用研究资料
- 书签集成:与您喜欢的书签应用连接
近期完成 ✅
- Next.js 前端:基于现代 React 的前端,性能提升
- 完整 REST API:面向所有功能的完整编程访问
- 多模型支持:18+ AI 供应商,包括 OpenAI、Anthropic、Ollama、LM Studio
- 高级播客生成器:使用播客档案的专业多说话人播客
- 内容转换:用于内容处理的可自定义强大操作
- 增强引用:改进的布局和更精细的来源引用控制
- 多个聊天会话:在笔记本内管理不同对话
查看 open issues 获取所有提议功能及已知问题的完整列表。
(回到顶部)
📖 需要帮助?
- 🤖 AI 安装助手:我们有一个 专为帮助您安装 Open Notebook 而构建的 CustomGPT - 它将引导您完成每一步!
- Open Notebook 新手? 从我们的 开始使用指南 入手
- 需要安装帮助? 查阅我们的 安装指南
- 想看看实际效果? 试试我们的 快速开始教程
🤝 社区与贡献
加入社区
- 💬 Discord 服务器 - 获取帮助、分享创意、与其他用户交流
- 🐛 GitHub Issues - 报告 bug 和请求功能
- ⭐ 为本仓库加星 - 展示支持,帮助他人发现 Open Notebook
贡献
我们欢迎贡献!我们尤其需要以下帮助:
- 前端开发:帮助改进我们现代的 Next.js/React UI
- 测试与 Bug 修复:让 Open Notebook 更稳健
- 功能开发:共同打造最棒的研究工具
- 文档:改进指南和教程
当前技术栈:Python、FastAPI、Next.js、React、SurrealDB 未来路线图:实时更新、增强异步处理
查看我们的 贡献指南 获取如何开始的详细信息。
(回到顶部)
📄 许可证
Open Notebook 采用 MIT 许可证。详见 LICENSE 文件。
社区支持:
- 💬 Discord 服务器 - 获取帮助、分享创意、与用户交流
- 🐛 GitHub Issues - 报告 bug 和请求功能
- 🌐 网站 - 了解更多项目信息
(回到顶部)
