简介
什么是 Open Notebook ?
Open Notebook
是一个开源的、以隐私为中心的AI
驱动的笔记和研究平台,旨在帮助用户提升学习和研究能力。它结合了人工智能的力量与严格的隐私控制,为研究者、学生和专业人士提供了一个强大的工具,允许他们在管理笔记、生成洞见和进行信息整合时保持对数据的完全控制。
主要特性
- 多笔记本支持:轻松地在多个笔记本中组织您的研究。
- 多模型支持:
Open AI
、Anthropic
、Gemini
、Vertex AI
、Open Router
、Ollama
。 - 播客生成器:自动将您的笔记转换为播客格式。
- 广泛的内容集成:适用于链接、
PDF
、EPUB
、Office
、TXT
、Markdown
文件、YouTube
视频、音频文件、视频文件和粘贴文本。 - 人工智能笔记:自己写笔记或让人工智能协助您产生见解。
- 集成搜索引擎:内置全文和矢量搜索,可更快地检索信息。
- 细粒度上下文管理:精确选择与 AI 共享的内容以保持控制。
- 隐私控制:用户完全掌控哪些信息可以被
AI
访问,确保数据隐私。
适用对象
- 学习爱好者:希望深入理解知识,超越表面层次。
- 独立思考者:重视记笔记和形成个人观点的过程。
- 隐私意识强烈的用户:希望保护自己的思维和计划,不被大公司追踪。
未来计划
Open Notebook
计划进一步增强功能,最终目标是为每个人构建一个个性化的认知助手,帮助他们发展技能、知识和观点。
安装
在群晖上以 Docker 方式安装。
采用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
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 | 用于访问 OpenRouter 的 API 密钥 |
GROQ_API_KEY | 用于访问 GROQ 服务的 API 密钥 |
XAI_API_KEY | 用于访问 XAI 服务的 API 密钥 |
ELEVENLABS_API_KEY | 用于 ElevenLabs 的 API 密钥,主要用于播客功能 |
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
然后执行下面的命令
# 新建文件夹 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 Name
和 Description
因为没有选择语音转文本模型,所以不能上传音频/视频文件
上传完成之后
就可以开始提问了
使用流程
-
- 创建你的知识中心:可以创建无限数量的笔记本。
-
- 收集资料来源:将知识来源(如视频、
PDF
、网站或您自己从其他工具获得的笔记)添加到Notebook
的源区域
- 收集资料来源:将知识来源(如视频、
-
- 与你的
AI
合作:
- 🤔 回答有关你收集的知识的问题
- 📝 测试你的理解
- 💡 提供不同的观点
- 🧠 激发更清晰的思维
- ✨ 产生新的见解
- 与你的
- 创建和连接:可以
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/