本地私有 AI 笔记库怎么搭?Open Notebook 从部署到调优完整指南
【免费下载链接】open-notebookAn Open Source implementation of Notebook LM with more flexibility and features项目地址: https://gitcode.com/GitHub_Trending/op/open-notebook
Open Notebook 是一个开源自托管的 AI 研究笔记工具:把 PDF、网页、音视频喂给它,就能获得带引用来源的对话、自动生成的笔记,甚至多主播播客——而所有数据都留在你自己的机器上。这篇指南按"体检 → 上线 → 调优 → 排障"的顺序带你从零跑通整套服务,顺带讲清楚本地模型与开发者模式两条进阶路线,读完你能独立完成部署、接入 AI 供应商,并自己处理常见的启动问题。
它到底能干什么:资料、对话、播客一条线
和普通笔记软件最大的区别在于:Open Notebook 把"收集资料"和"消化资料"绑在了一起。核心能力包括:
- 多格式资料导入:PDF、Office 文档、音频、视频、网页链接、纯文本都能作为"资源源"(Source)加入
- 上下文对话:针对你的资料库提问,回答附带引用出处,不是泛泛而谈
- AI 笔记与洞察:对任意资料一键生成摘要、洞察,也可以手动写 Markdown 笔记
- 多主播播客生成:把研究内容转成 1-4 个自定义角色的音频对谈,通勤时听
- 全文 + 向量混合搜索:跨所有资料做语义检索
- 18+ 模型供应商:OpenAI、Anthropic、Google 之外,也支持 Ollama、LM Studio 这类本地推理方案
- 完整 REST API:可以用脚本批量管理,方便二次集成
下面是它的实际工作界面,左侧管理资源源,中间是笔记与洞察,右侧是 AI 对话区:
图 1:Open Notebook 三栏式界面——资源、笔记、对话协同的本地 AI 笔记工作台
先把环境体检一遍
部署方式再花哨,地基都得是 Docker。先跑这两条命令确认版本到位:
docker --version docker compose version看到 Docker 版本号和Docker Compose version v2.x就对了。容器启动后系统至少要能分给它 4GB 内存、2GB 磁盘;如果你打算跑本地大模型,8GB 内存以上会更从容。
💡 体检小技巧:确认 Docker 守护进程正在运行(systemctl status docker或打开 Docker Desktop 应用),很多"容器起不来"的问题根源只是服务没开。
推荐路线:Docker 容器化五分钟上线
这是最适合大多数人的路线:一条命令拉起数据库和应用两个服务,密钥等配置全部留在浏览器里完成。
第一步,拿代码。仓库里自带docker-compose.yml,clone 下来即用:
git clone https://gitcode.com/GitHub_Trending/op/open-notebook cd open-notebook第二步,改一处必改的配置。打开docker-compose.yml,找到OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string这一行,把它换成你自己的长随机字符串。这个密钥用来加密存在数据库里的 API Key,换掉或丢失它,已保存的凭据就读不回来了,所以务必记牢。
第三步,启动:
docker compose up -d验收方式:等 15-20 秒后执行docker ps,应看到surrealdb和open_notebook两个容器都是Up状态;再打开http://localhost:8502,能进入登录/主界面即部署成功。首次启动要拉镜像,网络慢的话耐心等几分钟。
接入你的 AI 模型
服务跑起来只是骨架,接下来在界面里"喂"它大脑:
- 进入Settings → API Keys,点Add Credential,选择供应商(OpenAI、Anthropic 等),粘贴密钥后保存
- 点Test Connection,显示成功再点Discover Models → Register Models把模型注册进来
- 回到Settings → Models,用Auto-Assign Defaults或手动指定哪个模型负责对话、哪个负责嵌入
跑通标志:模型列表里出现刚注册的模型,且默认分配项不再为空。
⚠️ 避坑提示:数据库端口(8000)默认只绑定到127.0.0.1,这是刻意设计。如果你要把实例暴露到局域网或公网,先在.env里改掉SURREAL_USER/SURREAL_PASSWORD的默认值,并参考 docs/5-CONFIGURATION/security.md 做加固,否则默认凭据等于裸奔。
进阶玩法:接 Ollama 实现零成本全本地
不想给云端 API 花钱、也不想让数据出机器?仓库的examples/目录提供了带 Ollama 容器的现成编排文件:
docker compose -f examples/docker-compose-ollama.yml up -d启动后给 Ollama 容器拉一个模型(以 mistral 为例,具体容器名以docker ps输出为准):
docker exec open-notebook-ollama-1 ollama pull mistral然后在Settings → Models里把语言模型设为ollama/mistral、嵌入模型设为ollama/nomic-embed-text(缺会自动下载)。本地模型的速度取决于你的硬件,常见选择大致如下:
| 模型 | 速度 | 显存需求 | 适合场景 |
|---|---|---|---|
| phi | 很快 | ~2GB | 低配机器先跑通流程 |
| mistral | 快 | ~4GB | 日常对话、测试 |
| neural-chat | 中等 | ~6GB | 质量与速度平衡 |
| llama2 | 慢 | 8GB+ | 复杂推理任务 |
看到什么算成功:在对话里问一句"这段资料讲了什么",能收到本地模型基于资料内容的回答,且全程断网也能工作。
💡 本地推理和云端可以混用:简单任务走本地模型省钱,复杂推理临时切到云端,切换只在设置里点一下即可。
开发者路线:从源码把整套服务拉起来
如果你要改代码、做贡献,就走源码模式。前置条件:Python 3.11+、Node.js 18+、Docker(仅用于跑 SurrealDB)、uv 包管理器。
git clone https://gitcode.com/GitHub_Trending/op/open-notebook cd open-notebook uv sync uv pip install python-magic cp .env.example .env.env里至少要把OPEN_NOTEBOOK_ENCRYPTION_KEY填上一个自己的值。然后按模块把服务分开起,方便看各自日志:
make database # 起 SurrealDB make api # 起 FastAPI 后端,端口 5055 make worker # 起后台任务 worker(别漏,见下文) make frontend # 起 Next.js 前端,端口 3000嫌麻烦可以make start-all一把全起。验收方式:浏览器打开http://localhost:3000能看到界面,http://localhost:5055/docs能看到 API 文档,就算齐活。
⚠️ worker 必须启动:资料的内容抽取、向量化、洞察生成都走它调度的后台任务。不起 worker 的话,新加的资料会永远卡在"待处理"状态。
上线后值得了解的三个配置项
完整清单见 docs/5-CONFIGURATION/environment-reference.md,日常最可能碰到的三个:
| 变量 | 默认值 | 什么时候要动它 |
|---|---|---|
OPEN_NOTEBOOK_ENCRYPTION_KEY | 无 | 必填,丢了则所有已存凭据作废 |
OPEN_NOTEBOOK_WORKER_MAX_TASKS | 5 | 单卡 GPU 或纯本地 LLM 环境建议改为 1,避免并发把模型打爆 |
OPEN_NOTEBOOK_MAX_UPLOAD_SIZE_MB | 100 | 要传大体积音视频时调大;前面有 nginx 反代的话记得同步放宽代理侧限制 |
改完环境变量统一用docker compose up -d重建容器生效。
故障速查:四个高频卡壳点
症状一:docker compose up报端口已占用原因:8502 或 5055 被别的进程占了。 处理:lsof -i :8502找到占用者停掉它;或者把 compose 文件里的映射改成"8503:8502"后用新端口访问。
症状二:浏览器提示无法连接服务器原因:前端够不到 API,通常是容器没起来或刚启动还在初始化。 处理:先docker ps确认两个容器都在运行,再curl http://localhost:5055/health,返回{"status":"ok"}就通了;仍不行就docker compose logs看哪个服务在报错,必要时docker compose restart。
症状三:模型列表为空,提示无可用模型原因:凭据没配、密钥有误,或者测完连接忘了注册模型。 处理:回到Settings → API Keys重新测试连接;通过后一定补做 Discover Models → Register Models;留意密钥尾部多粘的空格。
症状四:资料上传后一直停在"待处理"原因:源码模式下没起 worker,或并发数把本地模型压垮了。 处理:确认 worker 进程在跑;本地推理环境把OPEN_NOTEBOOK_WORKER_MAX_TASKS设为 1 再重建容器。
更多疑难杂症可以翻 docs/6-TROUBLESHOOTING/quick-fixes.md,那里按"症状-原因-解法"列了完整清单。
跑通之后,值得继续解锁的能力
主线走通只是起点。建议按这个顺序解锁:播客生成(在笔记页把资料转成多角色对谈,配 docs/2-CORE-CONCEPTS/podcasts-explained.md 看原理)→内容转换(自定义提示词批量做摘要、主题提取)→REST API 集成(把资料库接进自己的自动化流程)。再往后,MCP 集成、反向代理部署、密码保护这些进阶项都躺在 docs/5-CONFIGURATION/ 里,按需求取用即可。
到这里,你手里已经有一套完整可用的私有 AI 笔记系统:资料入库、上下文问答、自动笔记、搜索全部就绪。下一步不妨导入一批真实资料试试效果,或者把本地 Ollama 模型换更大的,看看质量与速度的平衡点在哪里。踩到文档没覆盖的坑,去项目社区提问通常能得到很快回应;想深入代码内部,docs/7-DEVELOPMENT/ 的架构与开发文档是正式入口。
【免费下载链接】open-notebookAn Open Source implementation of Notebook LM with more flexibility and features项目地址: https://gitcode.com/GitHub_Trending/op/open-notebook
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考