想把课件、论文或自己的笔记丢进一个「笔记本」里提问,又不想把资料交给云端?Notebook LM 就是那种把资料丢进去再提问的笔记助手。Open Notebook 可以完全自托管:建笔记本、粘贴文本或上传文档、按资料对话,回答能带来源引用。界面支持简体中文。本机用 Docker Compose 拉起界面和数据库。对话走本机 Ollama(在自己电脑上跑大模型的工具),不必填云端密钥。模型下载完成后可离线用。本帖免费。
4 步上手
- 起服务:用 Docker Compose 拉起界面、数据库和 Ollama。若本机没有可用的 Docker 网桥,请改用 host 网络,服务之间用
127.0.0.1通信。 - 换加密密钥:把配置里的加密密钥换成自己生成的长随机串,不要用文档占位值。
- 拉模型并指定默认:自行拉取对话模型和嵌入模型。在「管理 → 模型」里添加 Ollama,测试通过后点自动分配默认模型。
- 建笔记本提问:新建笔记本,粘贴一段自己写的文本,对这份资料提问,看到回答即通过。

http://127.0.0.1:8502/notebooks。界面已切到简体中文,列表里有「课设资料笔记本」。能做什么
- 建笔记本:把同一主题的资料放在一起
- 添加来源:可粘贴文本,也可上传常见的文字版文档
- 按资料提问:回答尽量带来源引用
- 写笔记:可以手写,也可以把对话要点记下来
- 本机模型:对话和向量检索都走 Ollama,不强制云端 API Key
嵌入模型:把一段文字变成一组数字,方便按意思检索,不是用来聊天的。对话模型和嵌入模型要分别准备,只拉聊天模型时,按资料提问会不完整。
「生成播客」是进阶能力,需要额外的语音合成模型。只接 Ollama 时不要把它当成必过项。
技术栈(压缩)
- 界面:Next.js(基于 React 的前端框架)
- 接口:FastAPI(Python 的 Web 框架)
- 数据库:SurrealDB
- 本机模型:Ollama
- 运行:Docker Compose
本机实跑版本为 1.15.1,入口 http://127.0.0.1:8502。
本机部署(已跑通)
先检查端口 8502、5055、8000、11434 是否空闲。冲突就改端口,并打开对应的新地址。
普通 Docker 网桥下,按官方编排即可,服务之间用服务名通信。本机实跑时没有可用网桥,ports 映射无效,三个服务改用了 host 网络,互相访问一律写 127.0.0.1。
# 复制示例编排后,先换成自己的加密密钥
openssl rand -hex 32
docker compose up -d
curl http://127.0.0.1:5055/health # 期望 {"status":"healthy"}
# 应用不会代拉模型,需自己拉取
docker compose exec ollama ollama pull llama3.2
docker compose exec ollama ollama pull nomic-embed-text
docker compose exec ollama ollama list
内存紧张时不要拉很大的对话模型。本机验收用的是 llama3.2:latest 和 nomic-embed-text:latest。模型名必须带 tag,并与界面里添加的名称完全一致。
CPU 跑本地模型时,建议加上 ESPERANTO_LLM_TIMEOUT=420 和 OPEN_NOTEBOOK_WORKER_MAX_TASKS=1。改环境变量必须 docker compose up -d,只执行 restart 不会生效。第一句回答可能要等一会儿,等模型加载完即可。
若本机已经有可用的 Ollama(11434 已被占用且能用),不要再起一个容器,直接复用,并拉齐对话模型和嵌入模型。
打开 http://127.0.0.1:8502。默认无登录。进入「管理 → 模型」,提供商选 Ollama,API Key 留空。若用官方默认网桥,Base URL 填 http://ollama:11434。本机因改用 host 网络,填的是 http://127.0.0.1:11434。点 Test,通过后再添加模型,并点自动分配默认模型。

llama3.2:latest,Embedding 为 nomic-embed-text:latest,状态显示「已配置」。
验收:建笔记本、贴文本、提问
新建一个笔记本,粘贴一段自己写的短文本(不要用受版权保护的教材扫描件)。扫描版 PDF 需要额外的文档识别组件,最小验收不必开启。


对这份资料提问,例如「验收当天要做哪四件事」。等模型答完再看结果。

llama3.2:latest。

/health 返回 {"status":"healthy"};Ollama 已列出对话模型和嵌入模型。实测踩坑
- Ollama 的地址不要填错:官方默认网桥填
http://ollama:11434;host 网络下填http://127.0.0.1:11434。不要在容器里填localhost,那会指向容器自己。 - 必须自己拉对话模型 + 嵌入模型:应用不会代拉。名称要带 tag,并与界面一致。
- 必须点自动分配默认模型:否则聊天会提示没有配置模型。
- 加密密钥必须自己换:文档占位值等于公开。保存过配置后不要再改,否则会出现解密错误。密钥不要出现在截图里。
ollama pull可能被 CDN 拦住:若报redirect target not allowed或解析到非公网地址,可改用模型文件或 GGUF,再ollama create,名称仍要对上界面。- 官方 compose 多数变量不能只写在
.env:应用设置要写在open_notebook.environment里,并用up -d生效。 - 不要把「生成播客」当必过项:只接 Ollama 时没有语音合成,播客会失败。
- 默认无密码,端口可能对外监听:谁能访问 8502 和 5055,就能看到笔记和模型配置。本机请限制访问,或设置强密码。
安全与合规
- 默认无登录。8502、5055 若暴露到局域网或公网,等于公开笔记和已保存的模型配置。能绑
127.0.0.1就绑;或设置强密码。密码存在浏览器 localStorage,共享电脑请退出。 - 数据库带有默认管理账号,不要把 8000 对公网开放,也不要在截图里暴露库账号。
- 协议为 MIT:再分发请保留原版权声明与 LICENSE。
- 必须自换加密密钥,不要用文档占位值。
- 源码包可在本帖下载区获取(含 LICENSE 与
DEPLOY.txt,不含数据目录和密钥)。
按上文起服务 → 换密钥 → 拉模型并指定默认 → 建笔记本提问,一套本地知识笔记助手就验收完了。














暂无评论内容