收藏了一堆资料没空看?用 Open Notebook 搭个 AI 知识库

前言

平时上网,总会顺手收藏一些觉得有用的东西。看到不错的技术教程,先存下来;遇到值得研究的项目,保存链接;下载的 PDF、文档和视频,也都想着等有空再看。

可时间一长,收藏的东西越来越多,真正认真看完的却没几个。等到哪天想找某个知识点,又得重新翻文件、搜聊天记录,甚至连当初把资料放在哪儿都忘了。

其实,这类问题已经有不少 AI 工具在尝试解决,比如 Google 的 NotebookLM。只要把资料交给它,就能让 AI 帮忙阅读、总结,还可以围绕资料直接提问。

不过,如果想把资料保存在自己的设备上,或者自由选择使用的 AI 模型,就可以看看今天要介绍的 Open Notebook。它是一个开源、支持自托管的 AI 知识库工具,可以理解为 NotebookLM 的一种开源替代方案。

1 认识 Open Notebook

image-20261016160055774

项目地址:https://github.com/lfnovo/open-notebook

Open Notebook 是一款开源、自托管的 AI 知识管理工具,可以看作 Google NotebookLM 的开源平替。目前项目在 GitHub 上已获得超过 4 万 Star,采用 MIT 开源协议。

它覆盖了 NotebookLM 常用的资料导入、AI 问答、来源引用和播客生成等核心能力,同时支持全文搜索、语义检索和 AI 辅助笔记。

项目最大的特点是数据自主可控、模型选择灵活。支持 Docker 本地部署,可接入 OpenAI、DeepSeek、Ollama、LM Studio 等 20 多种 AI 服务提供商,也能使用本地模型运行。

官方还整理了一份与 NotebookLM 的功能对比:

对比项目 Open Notebook NotebookLM
部署方式 本地、Docker、云服务器 Google 云端服务
AI 模型 20+ 提供商,支持本地模型 Google 模型
AI 播客 1~4 位主持人,可自定义角色 以双人对谈为特色
内容处理 内置及自定义内容转换 内置内容生成工具
扩展能力 开源、REST API、可二次开发 主要通过官方功能使用

可以看到,Open Notebook 的优势并不只是开源,而是可以自由选择部署环境和 AI 模型,同时拥有更灵活的播客配置与扩展能力。对于希望在 NAS 或自己的服务器上搭建 AI 知识库的用户来说,是一个值得尝试的方案。

2 部署与配置

2.1 Docker部署Open Notebook

就以飞牛 NAS 为例,首先打开Docker,确保Docker服务已经打开:

image-20260924174604507

接着进入左侧的 Compose 页面,点击右上角的 新增项目,填写项目名称 open-notebook,并选择部署目录,在 来源 选项中勾选 创建 docker-compose.yml,然后将以下配置粘贴到编辑框中:

注意:API_URL地址中的IP需要修改为对应自己的Nas访问IP!

services:
  surrealdb:
    image: surrealdb/surrealdb:v2
    command: ["start", "--log", "info", "--user", "root", "--pass", "123456", "rocksdb:/mydata/mydatabase.db"]
    user: root
    volumes:
      - ./surreal_data:/mydata
    environment:
      - SURREAL_EXPERIMENTAL_GRAPHQL=true
    restart: unless-stopped

  open_notebook:
    image: lfnovo/open_notebook:v1-latest
    ports:
      - "8502:8502"  # Web页面
      - "5055:5055"  # API接口
    environment:
      - API_URL=http://192.168.50.212:8502 #IP部分替换成当前Nas的访问IP
      - OPEN_NOTEBOOK_ENCRYPTION_KEY=opennotebook123456
      - OPEN_NOTEBOOK_PASSWORD=123456  # 网页登录密码
      - SURREAL_URL=ws://surrealdb:8000/rpc
      - SURREAL_USER=root
      - SURREAL_PASSWORD=123456  # 数据库密码
      - SURREAL_NAMESPACE=open_notebook
      - SURREAL_DATABASE=open_notebook
    volumes:
      - ./notebook_data:/app/data
    depends_on:
      - surrealdb
    restart: unless-stopped

如下图,填写完成后,勾选创建项目后立即启动,然后点击确定:

image-20261016163411251

接着等待 Docker 自动拉取镜像、创建并启动容器。当日志停止跑码后,即可关闭窗口:
image-20261016163943064

返回 Docker 管理界面,点击左侧的容器菜单,可以看到 surrealdb 和 open_notebook 两个容器均处于运行状态,将鼠标移动到端口链接位置,点击8502端口:
image-20261016164234795

点击后,浏览器会自动跳转到 Open Notebook 页面,也可以手动输入以下地址访问:

http://NAS-IP:8502

如下图:

image-20261016164350764

输入前面配置的访问密码 123456,即可进入管理界面:
image-20261016164931239

到这里,Open Notebook 就部署完成了。不过目前还需要配置 AI 模型,才能正常使用资料问答、内容总结等功能。

2.2 AI 模型配置

Open Notebook 本身不提供 AI 模型,需要自行接入模型服务才能使用资料问答、内容总结等功能。项目支持 OpenAI、DeepSeek、Gemini、Ollama 等多种服务,也可以接入兼容 OpenAI API 的第三方接口。

这里以硅基流动(SiliconFlow)为例,它提供语言模型、向量模型、语音识别和语音合成等服务,通过一个 API Key 就能接入多种 AI 模型。

首先打开硅基流动官网,注册并登录账号,进入 API 密钥 页面,创建一个新的 API Key 并复制保存:

https://cloud.siliconflow.cn

如下图:

image-20261016171147396

接着回到 Open Notebook,点击左侧 管理 下的 模型 页面,找到 OpenAI Compatible,点击 添加配置:

配置名称:硅基流动API

API Key:填写刚才创建的密钥

Base URL:https://api.siliconflow.cn/v1

如下图:

image-20261016171433800

保存后,点击 Models 添加需要使用的模型。本次使用以下四种模型:

模型类型 模型名称
语言模型(Language) deepseek-ai/DeepSeek-V4.1-Flash
向量模型(Embedding) Qwen/Qwen3-Embedding-0.6B
语音识别(STT) Qwen/Qwen3-ASR-1.7B
语音合成(TTS) FunAudioLLM/CosyVoice2-0.5B

依次点击Models,然后选择模型类型,勾选对应模型类型要使用的模型,最后点击添加,如下图:
image-20261016171655458

添加完成后,继续依次重复添加其他模型类型,然后,在页面顶部的 默认模型分配 中分别选择对应的模型,如下图所示:

image-20261016172541616

这样就完成了 Open Notebook 的基础模型配置。接下来就可以通过导入资料、AI 问答和播客生成,进一步验证各类模型是否能够正常工作。

3 实际体验

3.1 创建笔记本与导入资料

完成模型配置后,接下来就可以创建自己的 AI 知识库了。

首先进入左侧的 笔记本 页面,点击 新建笔记本,填写名称和描述。这里以 开源项目研究资料 为例,创建一个专门用来整理技术文档的笔记本:

image-20261018222235879

创建完成后,进入笔记本,点击 添加来源,可以看到支持文件上传、网页链接、文本等多种导入方式:
image-20261018222303700

这里就拿之前写过的一篇技术文章进行测试:

image-20261018222859370

添加后,系统会自动提取资料内容、进行分块处理并建立索引。等待处理完成后,就能在笔记本中查看对应的资料内容:

image-20261018222958598

这样就完成了资料的收集和整理。接下来,我们可以直接围绕这些资料向 AI 提问,而不必再逐份打开查找。

3.2 AI 问答与笔记整理

资料导入完成后,就可以直接向 AI 提问了,不需要自己重新翻阅整篇文章。

比如,我想找一款能够托管静态网页的文件服务,就可以直接提问:

有没有能够托管静态网页的文件服务?

image-20261018224631315

可以看到,AI 可以根据知识库中已有的资料查找相关内容,给出符合需求的工具,并引用对应的资料来源。

3.3 AI 播客生成

除了资料问答,Open Notebook 还有一个比较有意思的功能,就是可以将知识库中的内容转换成 AI 播客,支持最多 4 位主持人对话,还能自定义不同的声音和角色。

进入左侧的 播客 页面,可以配置发言者和节目档案,并选择前面接入的 AI 模型:

image-20261018225213987

配置完成后,进入 单集 页面,就可以选择资料生成播客,并在生成完成后进行试听:

image-20261018225458498

体验下来,Open Notebook 不只是简单地把资料集中起来,还能通过 AI 问答快速找到需要的信息,甚至将文章转换成播客,用另一种方式了解内容。

4 远程访问

前面已经完成了 Open Notebook 的部署和功能体验,不过目前只能在局域网内访问。如果出门在外,想用手机查看之前收藏的资料,或者临时向知识库提问,就没办法直接使用 NAS 的局域网地址了。

接下来通过 cpolar 内网穿透,将本地的 Open Notebook 映射到公网,这样无需公网 IP,也能随时随地通过浏览器访问自己的 AI 知识库。

4.1 安装 cpolar

在系统设置中打开ssh功能,然后使用ssh命令,连接进入飞牛NAS的终端:

ssh 飞牛用户名@你的Nas系统IP地址

111

接着,在终端执行如下命令,切换至root用户(输入密码时不会显示):

sudo -i

image-20260505180939492

然后,执行下面命令安装 cpolar:

sudo curl https://get.cpolar.sh | sh

image-20251218165154961

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

image-20251218165228464

接着,在浏览器中输入飞牛NAS的IP地址+9200端口访问 web ui管理界面,如:

http://192.168.50.212:9200/

image-20260904194658125

如果还没有账号,可以点击页面上的免费注册,进行注册账号。输入注册好的账号登录即可进入后台页面:

image-20260904194806789

4.2 创建随机域名隧道(免费)

随机域名方式更适合临时测试或短期使用。使用该方式时,公网访问地址会在一段时间后发生变化,通常不适合长期固定访问。不过它的优点是配置简单、可以免费体验。

首先,点击左侧菜单栏的 隧道管理,进入 隧道列表 页面,页面下默认会有 2 个隧道:

  • ssh隧道,指向22端口,tcp协议
  • website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

image-20260509152805723

点击创建隧道或者编辑现有的 website 隧道,设置一个隧道名称(自定义即可),协议选择 http,本地地址填写 Open Notebook 的访问端口 8502,地区这里选择 China Top,最后点击更新:

image-20261018230208419

创建或者更新完成后,接着点击 状态 → 在线隧道列表,可以看到同一个隧道生成了两个不同协议的公网访问地址,一个是 HTTP,另一个是 HTTPS:

image-20261018230303278

这里以https为例,访问测试一下:

image-20261018230330467

访问成功后,就可以通过 cpolar 提供的公网地址打开 Open Notebook。以后即使不在家,也能随时通过浏览器查看知识库中的资料,使用 AI 问答等功能,无需连接 NAS 所在的局域网。

注意:本文使用的 123456 为演示密码,正式开放公网访问前,建议修改为更安全的密码。

5 固定域名

固定二级子域名需要 cpolar 基础套餐或以上,使用免费套餐的读者可以先完成前面的随机域名访问测试。

通过前面的操作,已经可以使用随机公网地址访问 Open Notebook。不过,随机域名会定期变化,每次变化后都需要重新获取访问链接。

如果准备长期把 Open Notebook 当作自己的 AI 知识库使用,更推荐配置一个固定二级子域名,这样无论是在电脑还是手机上,都可以通过同一个地址访问。

5.1 保留固定二级子域名

首先,登录 cpolar 官网后台,进入 预留 页面:

https://dashboard.cpolar.com/reserved

在左侧菜单中选择 预留,找到 保留二级子域名 配置项:

image-20261018232132870

按照下面信息填写:

配置项 填写说明
地区 选择和前面隧道一致的地区
名称 自定义二级子域名,例如 notebook01,注意:该项不能重复,二级子域名名称是唯一的
描述 填写任意方便辨识的备注即可

填写完成后,点击 保留 按钮。保留成功后,会得到一个固定的二级子域名。后续我们就可以把这个固定域名绑定到 notebook01 隧道上。

5.2 修改 notebook01 隧道为固定域名

回到飞牛 NAS 上的 cpolar Web UI 管理界面,点击左侧菜单 隧道管理 → 隧道列表,找到前面配置的 notebook01 隧道,点击 编辑:

image-20261018232250142

将域名类型修改为 二级子域名,并填写刚才在官网后台保留的二级子域名,然后点击 更新 按钮:

image-20261018232355285

更新完成后,点击左侧菜单 状态 → 在线隧道列表,可以看到 notebook01 的隧道已经变成固定公网地址:

image-20261018232430038

复制生成的固定公网地址,在浏览器中访问:

image-20261018232458157

输入前面设置的 Open Notebook 访问密码,登录后即可进入知识库:

image-20261018232525152

到这里,Open Notebook 的固定域名就配置完成了。以后无论是在家里还是外出,都可以通过这个地址查看之前收藏的资料,使用 AI 问答等功能,也不用再因为随机域名变化而反复修改访问链接。

总结

体验下来,Open Notebook 确实提供了一种更方便的资料整理方式。不用再逐篇翻找收藏的资料,而是可以直接向 AI 描述需求,从知识库中查找相关内容,还能进一步整理笔记、生成播客。

相比 NotebookLM,它最大的优势还是可以自己部署,AI 模型也能自由选择。通过 Docker 安装在 NAS 上,再配合 cpolar 实现公网访问,平时在电脑上整理的资料,出门也能随时查找和使用。

当然,AI 问答、向量检索和语音合成都需要相应的模型服务,使用云端 API 时也要留意调用费用和数据隐私。如果平时有收藏技术文档、整理学习资料的习惯,Open Notebook 还是值得尝试的。

Share:

发表回复

目录

On Key

推荐文章