NotebookLM 的开源替代品:Open Notebook ,调用Gemini api 操作文档
目录
前言
厌倦了将私密文档上传到 Google NotebookLM,却又渴望拥有一个智能 "第二大脑"?Open Notebook横空出世,这款 GitHub 上爆火 (12,000+⭐) 的开源项目,正是你一直在寻找的隐私优先型 NotebookLM 替代品!本文教你docker部署open-notebook并接入gemini模型。
一、文档说明
open-notebook github地址:https://github.com/lfnovo/open-notebook
Docker官网: https://www.docker.com/
1. 适用场景:Mac系统下通过Docker部署lfnovo/open-notebook。仅配置Google Gemini模型(文本交互、TTS等核心功能)
2. 前置条件:已安装Docker Desktop、拥有可用Google账号(用于获取Gemini API Key)。我现在是mac系统
二、操作流程
步骤1:创建、进入专属部署目录
所有操作均在 /Users/open-notebook 目录下完成,先通过终端创建、进入该目录:
mkdir -p /Users/open-notebook cd /Users/open-notebook步骤2:获取有效Gemini API Key
1.访问获取地址:Google AI Studio 官网(需登录Google账号)
2.登录后,Google AI Studio页面点击页面左下角点「Get API key」

3.然后右上角点创建API密钥,给密钥取个名字,可以创建项目或者导入已有项目

4.成功后可以看到API key了,复制

步骤3:编写核心配置文件
需创建2个配置文件:docker.env(环境变量,含Gemini密钥)和 docker-compose.yml(容器部署配置),配置内容固定可直接复用。
3.1 编写 docker.env 文件
1.作用:存储Gemini API Key、数据库等环境变量,确保容器启动时加载有效配置。
# 1. 创建并打开docker.env(Mac文本编辑器自动打开) touch docker.env && open -e docker.env
2.粘贴以下配置内容,替换 GEMINI_API_KEY 为你的有效密钥,保存时需选择“格式→制作纯文本”:
# 核心配置:Gemini API Key(必填,替换为你的有效密钥) GEMINI_API_KEY=你上一步复制的的Gemini有效API Key # 数据库配置(固定不变,直接保留) SURREAL_ADDRESS=localhost SURREAL_PORT=8000 SURREAL_USER=root SURREAL_PASS=root SURREAL_NAMESPACE=open_notebook SURREAL_DATABASE=production
3.2 编写 docker-compose.yml 文件
作用:定义容器镜像、端口映射、数据持久化等部署规则,无需修改。
# 1. 创建并打开docker-compose.yml touch docker-compose.yml && open -e docker-compose.yml
粘贴以下配置内容,直接保存(纯文本格式):
version: '3.8' services: open_notebook: # 官方单容器镜像(稳定兼容Gemini,无需修改) image: lfnovo/open_notebook:v1-latest-single # 端口映射:8502(Web界面)、5055(API服务,必需) ports: - "8502:8502" - "5055:5055" # 加载当前目录的docker.env环境变量 env_file: - ./docker.env # 数据持久化:本地文件夹保存笔记和数据库,删除容器不丢失数据 volumes: - ./notebook_data:/app/data - ./surreal_single_data:/mydata # 容器异常自动重启(保障服务稳定性) restart: always
步骤4:启动容器并验证状态
4.1 启动容器
首次运行会自动拉取官方镜像,视网络情况需1-5分钟,耐心等待:
# 彻底启动(先停止删除旧容器,再后台启动新容器,确保配置生效) docker compose down && docker compose up -d
启动成功标识:终端输出 Container open-notebook-open_notebook-1 Started 或末尾显示「Done」。
4.2 验证容器运行状态
# 查看容器状态,STATUS列显示「running」即为正常 docker compose ps
若STATUS显示「exited」,说明启动失败,执行以下命令查看日志排查:
# 实时查看容器日志,按 Ctrl+C 退出 docker compose logs -f open_notebook
4.3 验证Gemini密钥加载成功(可选)
确认容器已读取到有效密钥:
docker compose exec open_notebook env | grep GEMINI_API_KEY
正常输出:GEMINI_API_KEY=你的有效密钥(说明加载成功)。
步骤5:模型配置与使用
5.1 访问Web界面
1.打开Mac浏览器(Safari/Chrome),输入地址:
http://localhost:8502
2.打开成功

若8502端口被占用,修改 docker-compose.yml 中 8502:8502 为 8503:8502,重启容器后访问 http://localhost:8503。
5.2 配置Gemini模型
优先选择兼容模型(避免新模型可用性问题),操作如下:
- 进入Web界面后,点击侧边栏「⚙️Settings」→「 Models」,可以看到可以配置四个类型的模型,先添加了对应模型,然后设置默认模型(可选)
- 配置聊天模型:在「Provider」下拉框中选择 Google(兼容性最好,无配额限制),「Model Name」输入你想要的模型 → 点击保存


- 配置默认模型

- Language 语言:
gemini-2.0-flash、gemini-2.5-pro-preview-06-05 - TTS 文本转语音:
gemini-2.5-flash-preview-tts、gemini-2.5-pro-preview-tts - Embedding 嵌入:
text-embedding-004
5.3 调用Gemini模型测试
1.回到主界面,点击「New Notebook」新建笔记

2.创建成功后打开,面板分为三个部分
- Sources 板块:用于添加知识来源(如文档、链接、文件等);
- Notes 板块:用于记录基于来源的见解、观察;
- Chat with Notebook 板块:集成 AI 对话功能(当前采用 Gemini Pro 模型),可通过提问理解笔记本内的内容(需先添加来源 / 笔记提供上下文)。
在输入框输入测试指令(如“解释Docker的核心优势”“Vite 与 Webpack 核心区别解析”)

3.点击输入框右侧「发送」按钮(箭头图标),等待1-3秒,即可看到Gemini模型输出结果,点击保存按钮即可保存到「Notes」下

4.数据持久化验证:创建笔记后关闭浏览器/容器,重新启动后,笔记仍保存在/Users/open-notebook/notebook_data 文件夹中,不会丢失。
如果你需要更复杂的配置,比如远程服务器部署,可以去它的 GitHub 页面查看详细文档。
三、常见问题排查
报错现象 | 核心原因 | 解决方案 |
|---|---|---|
API key not valid / API_KEY_INVALID | Gemini API Key无效/过期/复制错误 | 重新获取有效密钥,替换docker.env中的值,重启容器
|
Model is not a LanguageModel: None | 模型配置未加载/密钥未生效/模型名称错误 | 1. 确认密钥有效;2. 选择gemini-pro而非新模型;3. 执行docker compose down && up -d彻底重启 |
500 Internal Server Error | 后端处理请求异常(密钥/网络/模型问题) | 查看容器日志定位原因;确保网络能访问Google;验证密钥加载成功 |
无法访问http://localhost:8502 | 端口被占用/容器未正常启动 | 1. 执行lsof -i:8502查看端口占用;2. 修改yml端口映射(如8503:8502);3. 重启容器 |
gemini-2.0-flash报错 | 新模型可用性有限/账号无权限 | 切换为gemini-pro或gemini-1.5-flash,优先保障基础功能正常 |
四、关键注意事项
- Gemini API Key为个人凭证,请勿泄露给他人,避免被盗用额度
- Gemini免费额度有限,可在Google AI Studio查看额度使用情况,额度耗尽需升级付费方案
- Gemini不支持语音转文字(STT),仅支持文字输入和文本转语音(TTS)
- 笔记数据保存在
/Users/open-notebook/notebook_data,请勿手动删除该文件夹 - 修改任何配置后,必须执行
docker compose down && docker compose up -d彻底重启容器,否则配置不生效