开源AI笔记工具Open Notebook

简介

什么是 Open Notebook ?

Open Notebook 是一个开源的、以隐私为中心的 AI 驱动的笔记和研究平台,旨在帮助用户提升学习和研究能力。它结合了人工智能的力量与严格的隐私控制,为研究者、学生和专业人士提供了一个强大的工具,允许他们在管理笔记、生成洞见和进行信息整合时保持对数据的完全控制。

主要特性

  • 多笔记本支持:轻松地在多个笔记本中组织您的研究。
  • 多模型支持Open AIAnthropicGeminiVertex AIOpen RouterOllama
  • 播客生成器:自动将您的笔记转换为播客格式。
  • 广泛的内容集成:适用于链接、PDFEPUBOfficeTXTMarkdown 文件、YouTube 视频、音频文件、视频文件和粘贴文本。
  • 人工智能笔记:自己写笔记或让人工智能协助您产生见解。
  • 集成搜索引擎:内置全文和矢量搜索,可更快地检索信息。
  • 细粒度上下文管理:精确选择与 AI 共享的内容以保持控制。
  • 隐私控制:用户完全掌控哪些信息可以被 AI 访问,确保数据隐私。

适用对象

  • 学习爱好者:希望深入理解知识,超越表面层次。
  • 独立思考者:重视记笔记和形成个人观点的过程。
  • 隐私意识强烈的用户:希望保护自己的思维和计划,不被大公司追踪。

未来计划

Open Notebook 计划进一步增强功能,最终目标是为每个人构建一个个性化的认知助手,帮助他们发展技能、知识和观点。

安装

在群晖上以 Docker 方式安装。

采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: '3'

services:
surrealdb:
image: surrealdb/surrealdb:v2
container_name: open_notebook_db
restart: unless-stopped
# ports:
# - "8503:8000"
volumes:
- ./surreal_data/:/mydata
command: start --user root --pass root rocksdb:/mydata/mydatabase.db
pull_policy: always
user: root

open_notebook:
image: lfnovo/open_notebook:latest
container_name: open_notebook_app
restart: unless-stopped
ports:
- "8502:8502"
volumes:
- ./notebook_data:/app/data
environment:
- OLLAMA_API_BASE=http://192.168.0.197:11434
- SURREAL_ADDRESS=surrealdb
- SURREAL_PORT=8000
- SURREAL_USER=root
- SURREAL_PASS=root
- SURREAL_NAMESPACE=open_notebook
- SURREAL_DATABASE=open_notebook
- SUMMARY_CHUNK_SIZE=200000
- SUMMARY_CHUNK_OVERLAP=1000
- EMBEDDING_CHUNK_SIZE=1000
- EMBEDDING_CHUNK_OVERLAP=50
depends_on:
- surrealdb
pull_policy: always

环境变量的简单说明

可变
OPENAI_API_KEY 用于访问 OpenAI API 的密钥
ANTHROPIC_API_KEY 用于访问 Anthropic API 的密钥
GEMINI_API_KEY 用于访问 Gemini 模型的密钥,适合长文本和播客生成
VERTEX_PROJECT 指定 Google Cloud 项目的名称
GOOGLE_APPLICATION_CREDENTIALS Google 服务的凭证文件路径,通常为 JSON 格式
OLLAMA_API_BASE OLLAMA API 的基本 URL
OPENROUTER_BASE_URL 用于访问 OpenRouter API 的基本 URL
OPENROUTER_API_KEY 用于访问 OpenRouterAPI 密钥
GROQ_API_KEY 用于访问 GROQ 服务的 API 密钥
XAI_API_KEY 用于访问 XAI 服务的 API 密钥
ELEVENLABS_API_KEY 用于 ElevenLabsAPI 密钥,主要用于播客功能
LANGCHAIN_TRACING_V2 设置为 true 以在 LangSmith 上调试应用
LANGCHAIN_ENDPOINT LangChain API 的基本 URL
LANGCHAIN_API_KEY 用于访问 LangChain 服务的 API 密钥
LANGCHAIN_PROJECT 指定 LangChain 项目的名称
SURREAL_ADDRESS SurrealDB 的地址,使用 Docker Compose 时为 surrealdb
SURREAL_PORT SurrealDB 的端口,默认值为 8000
SURREAL_USER SurrealDB 的用户名,默认值为 root
SURREAL_PASS SurrealDB 的密码,默认值为 root
SURREAL_NAMESPACE SurrealDB 的命名空间,默认值为 open_notebook
SURREAL_DATABASE 使用的数据库名称,默认值为 staging
SUMMARY_CHUNK_SIZE 用于总结的字符大小,最大为 200000
SUMMARY_CHUNK_OVERLAP 总结时的字符重叠量,默认值为 1000
EMBEDDING_CHUNK_SIZE 向量嵌入的字符大小,默认值为 1000
EMBEDDING_CHUNK_OVERLAP 向量嵌入时的字符重叠量,默认值为 50

老苏因为本地已经安装了 ollama,所以只设置了 OLLAMA_API_BASE 的地址

文章传送门:本地大模型运行框架Ollama

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 open_notebook 和 子目录
mkdir -p /volume1/docker/open_notebook/{notebook_data,surreal_data}

# 进入 open_notebook 目录
cd /volume1/docker/open_notebook

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8502 就能看到主界面

第一次需要 migration 数据库

还需要设置 models

NoteBooks –> New Noteook

输入 NoteBook NameDescription

因为没有选择语音转文本模型,所以不能上传音频/视频文件

上传完成之后

就可以开始提问了

使用流程

    1. 创建你的知识中心:可以创建无限数量的笔记本
    1. 收集资料来源:将知识来源(如视频、PDF、网站或您自己从其他工具获得的笔记)添加到 Notebook 的源区域
    1. 与你的 AI 合作:
    • 🤔 回答有关你收集的知识的问题
    • 📝 测试你的理解
    • 💡 提供不同的观点
    • 🧠 激发更清晰的思维
    • ✨ 产生新的见解
  1. 创建和连接:可以 100% 手动创建笔记,或者利用 AI 编写的信息,或者两者结合。

参考文档

lfnovo/open-notebook: An Open Source implementation of Notebook LM with more flexibility and features
地址:https://github.com/lfnovo/open-notebook

What is Open Notebook? | Open Notebook
地址:https://www.open-notebook.ai/