NotebookLM 的开源替代品:Open Notebook ,调用Gemini api 操作文档

NotebookLM 的开源替代品:Open Notebook ,调用Gemini api 操作文档

目录

前言

一、文档说明

二、操作流程

步骤1:创建、进入专属部署目录

步骤2:获取有效Gemini API Key

步骤3:编写核心配置文件

3.1 编写 docker.env 文件

3.2 编写 docker-compose.yml 文件

步骤4:启动容器并验证状态

4.1 启动容器

4.2 验证容器运行状态

4.3 验证Gemini密钥加载成功(可选)

步骤5:模型配置与使用

5.1 访问Web界面

5.2 配置Gemini模型

5.3 调用Gemini模型测试

三、常见问题排查

四、关键注意事项


 

前言

厌倦了将私密文档上传到 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模型

优先选择兼容模型(避免新模型可用性问题),操作如下:

  1. 进入Web界面后,点击侧边栏「⚙️Settings」→「 Models」,可以看到可以配置四个类型的模型,先添加了对应模型,然后设置默认模型(可选)
  2. 配置聊天模型:在「Provider」下拉框中选择 Google(兼容性最好,无配额限制),「Model Name」输入你想要的模型 → 点击保存
  1. 配置默认模型

可选配置其他模型(按官方推荐)

  • Language 语言:gemini-2.0-flashgemini-2.5-pro-preview-06-05
  • TTS 文本转语音:gemini-2.5-flash-preview-ttsgemini-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,优先保障基础功能正常

四、关键注意事项

  1. Gemini API Key为个人凭证,请勿泄露给他人,避免被盗用额度
  2. Gemini免费额度有限,可在Google AI Studio查看额度使用情况,额度耗尽需升级付费方案
  3. Gemini不支持语音转文字(STT),仅支持文字输入和文本转语音(TTS)
  4. 笔记数据保存在 /Users/open-notebook/notebook_data,请勿手动删除该文件夹
  5. 修改任何配置后,必须执行 docker compose down && docker compose up -d 彻底重启容器,否则配置不生效

 

Could not load content