20 KiB
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
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 对比
| Feature | Open Notebook | Google Notebook LM | Advantage |
|---|---|---|---|
| 隐私与控制 | 自托管,数据归你 | 仅限 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 installed
- 仅此而已!(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
# Credentials default to root:root for a zero-config local setup. Before
# exposing this instance to a network, set SURREAL_USER / SURREAL_PASSWORD
# in a .env file (see .env.example) — they are applied here and to the
# open_notebook service below, so the two always stay in sync.
# List (exec) form so each interpolated value stays a single argument —
# a password containing spaces would otherwise be split into several.
command: ["start", "--log", "info", "--user", "${SURREAL_USER:-root}", "--pass", "${SURREAL_PASSWORD:-root}", "rocksdb:/mydata/mydatabase.db"]
user: root # Required for bind mounts on Linux
ports:
# Bound to localhost only: the open_notebook service reaches this over
# the internal compose network regardless, so the host port is purely
# for local debugging (e.g. Surrealist, `surreal sql`). Exposing this
# on 0.0.0.0 would let anyone who can reach the host connect with the
# default root:root credentials.
- "127.0.0.1:8000:8000"
volumes:
- ./surreal_data:/mydata
environment:
- SURREAL_EXPERIMENTAL_GRAPHQL=true
restart: always
pull_policy: always
open_notebook:
image: lfnovo/open_notebook:v1-latest
ports:
- "8502:8502" # Web UI
- "5055:5055" # REST API
environment:
# REQUIRED: Change this to your own secret string
# This encrypts your API keys in the database
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
# Database connection. SURREAL_USER / SURREAL_PASSWORD default to root:root
# for local use; override them in a .env file before exposing the instance
# (the same values configure the surrealdb service above).
- SURREAL_URL=ws://surrealdb:8000/rpc
- SURREAL_USER=${SURREAL_USER:-root}
- SURREAL_PASSWORD=${SURREAL_PASSWORD:-root}
- SURREAL_NAMESPACE=open_notebook
- SURREAL_DATABASE=open_notebook
volumes:
- ./notebook_data:/app/data
depends_on:
- surrealdb
restart: always
pull_policy: 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 提供商
- 前往 Models,选择你的提供商(OpenAI、Anthropic、Google 等)
- 点击 + Add Configuration
- 按需粘贴 API 密钥及其他信息,然后点击 Add Configuration
- 点击 Test 测试连接
- 点击 Sync Models 并勾选要包含的模型
- 在 Default Model Assignments 下,点击 Auto-Assign Defaults,或手动指定各用途使用的模型
完成!你已准备好创建第一个笔记本。
需要 API 密钥? 可从以下平台获取: OpenAI · Anthropic · Google · Groq(免费套餐)
想要免费的本地 AI? 请参阅 examples/docker-compose-ollama.yml 了解 Ollama 配置
📚 更多安装选项
- 使用 Ollama(免费本地 AI) - 在本地运行模型,无需 API 费用
- 从源码安装(开发者) - 用于开发与贡献
- 完整安装指南 - 涵盖所有部署场景
📖 需要帮助?
- 🤖 AI 安装助手:帮助你安装的 CustomGPT
- 🆘 故障排查:5 分钟故障排查指南
- 💬 社区支持:Discord 服务器
- 🐛 报告问题:GitHub Issues
Star 历史
提供商支持矩阵
感谢 Esperanto 库,我们开箱即用地支持这些提供商!
| 提供商 | LLM 支持 | 嵌入(Embedding)支持 | 语音转文字(Speech-to-Text) | 文字转语音(Text-to-Speech) |
|---|---|---|---|---|
| OpenAI | ✅ | ✅ | ✅ | ✅ |
| Anthropic | ✅ | ❌ | ❌ | ❌ |
| Groq | ✅ | ❌ | ✅ | ❌ |
| Google (GenAI) | ✅ | ✅ | ✅ | ✅ |
| Vertex AI | ✅ | ✅ | ❌ | ✅ |
| Ollama | ✅ | ✅ | ❌ | ❌ |
| Perplexity | ✅ | ❌ | ❌ | ❌ |
| ElevenLabs | ❌ | ❌ | ✅ | ✅ |
| Deepgram | ❌ | ❌ | ❌ | ✅ |
| Azure OpenAI | ✅ | ✅ | ✅ | ✅ |
| Mistral | ✅ | ✅ | ✅ | ✅ |
| DeepSeek | ✅ | ❌ | ❌ | ❌ |
| Voyage | ❌ | ✅ | ❌ | ❌ |
| xAI | ✅ | ❌ | ❌ | ✅ |
| OpenRouter | ✅ | ✅ | ❌ | ❌ |
| DashScope (Qwen) | ✅ | ❌ | ❌ | ❌ |
| MiniMax | ✅ | ❌ | ❌ | ❌ |
| OpenAI Compatible* | ✅ | ✅ | ✅ | ✅ |
*支持 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 的功能
- ⚡ 使用 OpenAI 快速入门 - 5 分钟内上手运行
- 🔧 安装 - 全面的配置指南
- 🎯 完全本地运行 - 使用 Ollama/LM Studio,完全私有
用户指南
高级主题
- 🎙️ 播客生成 - 创建专业播客
- 🔧 内容转换 - 自定义内容处理
- 🤖 AI 模型 - AI 模型配置
- 🔌 MCP 集成 - 连接 Claude Desktop、VS Code 及其他 MCP 客户端
- 🔧 REST API 参考 - 完整的 API 文档
- 🔐 安全 - 密码保护与隐私
- 🚀 部署 - 适用于所有场景的完整部署指南
- 🧭 愿景与原则 - Open Notebook 是什么,以及它的发展方向
- 🛠️ 开发者文档 - 架构、环境配置、贡献指南、决策记录
(返回顶部)
🗺️ 路线图
即将推出的功能
- 实时前端更新:实时 UI 更新,带来更流畅的体验
- 异步处理:通过异步内容处理提升 UI 响应速度
- 跨笔记本来源:在不同项目间复用研究资料
- 书签集成:与你常用的书签应用连接
最近已完成 ✅
- Next.js 前端:基于 React 的现代化前端,性能更优
- 全面的 REST API:以编程方式完整访问所有功能
- 多模型支持:支持 18+ 家 AI 提供商,包括 OpenAI、Anthropic、Ollama、LM Studio
- 高级播客生成器:支持 Episode Profiles 的专业多说话人播客
- 内容转换:强大的可自定义内容处理操作
- 增强的引用:改进的布局与更精细的来源引用控制
- 多对话会话:在笔记本内管理不同的对话
查看 open issues 获取完整的功能建议与已知问题列表。
(返回顶部)
📖 需要帮助?
- 🤖 AI 安装助手:我们提供了 帮助你安装 Open Notebook 的 CustomGPT ——它会逐步引导你完成安装!
- 初次使用 Open Notebook? 请从我们的 入门指南 开始
- 需要安装帮助? 请查看我们的 安装指南
- 想亲眼看看效果? 试试我们的 快速入门教程
🤝 社区与贡献
加入社区
- 💬 Discord Server - 获取帮助、分享想法、与其他用户交流
- 🐛 GitHub Issues - 报告 bug 并请求功能
- ⭐ 为仓库点亮 Star - 表示支持并帮助他人发现 Open Notebook
参与贡献
我们欢迎贡献!尤其希望获得以下方面的帮助:
- 前端开发(Frontend Development):帮助改进现代化的 Next.js/React UI
- 测试与 Bug 修复:让 Open Notebook 更加稳定可靠
- 功能开发:一起打造最酷的研究工具
- 文档:改进指南与教程
当前技术栈:Python、FastAPI、Next.js、React、SurrealDB 未来路线图:实时更新、增强异步处理
详见我们的贡献指南,了解如何开始参与,包括AI 辅助贡献相关准则。要了解我们在构建什么(以及我们会拒绝什么),请阅读 VISION.md。
(返回顶部)
📄 许可证
Open Notebook 采用 MIT 许可证。详情请参阅 LICENSE 文件。
社区支持:
- 💬 Discord Server - 获取帮助、分享想法、与用户交流
- 🐛 GitHub Issues - 报告 bug 并请求功能
- 🌐 Website - 了解更多项目信息
(返回顶部)

