Notion的离线替代方案Eidos

什么是 Eidos ?

EidosNotion 的离线替代品。Eidos 是一个可扩展的框架,用于在一个地方管理您一生的个人数据。

软件特点:

  • 一切在您的浏览器内运行。这是一个纯 PWA,没有 Web 服务器。
  • 离线支持:无需互联网连接即可访问您的数据。数据存储在本地,以实现极快的性能。
  • AI 功能:与 LLM 深度集成,具有 AI 功能。在 Eidos 内翻译、总结和与您的数据交互。AI 甚至可以在离线状态下运行。
  • 可扩展性:定制 Eidos 以满足您的需求。
    • Prompt:使用 Prompt 扩展加快工作流程。无需编码。
    • UDF:使用 JavaScript 自定义公式功能。
    • Script:使用 TypeScript/JavaScript 创建强大的数据处理逻辑。
    • App:使用任何首选框架构建您自己的应用程序。
    • Block:使用自定义块扩展文档。
    • Field:使用自定义字段扩展表格。
  • 开发人员友好:
    • APISDK
    • Sqlite 标准化:Eidos 中的每个表都是一个 SQLite 表。

Eidos 设定了一个宏伟的目标,但它仍处于早期阶段,还有很多工作要做。你可以尝试一下,但不建议将其用于生产目的。

目前,Eidos 仅支持最新版本的基于 Chromium 的浏览器,例如 ChromeEdgeArcBrave。建议使用 122 以上的版本。

Eidos 基于 sqlite-wasm 构建,需要浏览器支持 OPFS 才能运行。

Wasm 解决了计算性能的问题,OPFS 则解决了大量数据存储的问题。通过这两者的结合, Eidos 实现了 local-first,成为了能够离线使用的 web app

什么是 OPFS ?

OPFSorigin private file system)属于文件系统 API,提供了页面所属的源专用的存储端点,并且不像常规文件系统那样对用户可见。 它提供对一种经过高度性能优化的特殊文件的访问能力的选择,例如,对文件内容的原地写入访问。

简单来说,OPFS 是浏览器虚拟出来的一套文件系统,它解决了浏览器存储大量数据的问题。你可以像使用系统级别的文件系统一样,在 web 中存储大量数据。

在安装之前,建议先看看官方的 FAQhttps://eidos.space/#faq

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应为 v0.5.1

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
# 运行容器
docker run -d \
--restart unless-stopped \
--name eidos \
-p 4495:80 \
ghcr.io/mayneyao/eidos

docker-compose 安装

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

1
2
3
4
5
6
7
8
9
version: '3'

services:
eidos:
image: ghcr.io/mayneyao/eidos
container_name: eidos
restart: unless-stopped
ports:
- 4495:80

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 eidos 
mkdir -p /volume1/docker/eidos

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

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

# 一键启动
docker-compose up -d

反向代理

安装完成后,如果直接用 IP 访问,虽然能看到界面,但是 Create New 新建数据库会卡住

另外老苏还要测试基于 One API 的大模型,所以本文采用了cloudflared + npm 方案,实现了可公网访问的反向代理

文章传送门:

假设我们实际访问地址如下👇

域名 局域网地址 备注
note.xxsu.tk http://192.168.0.197:8124 Eidos 的访问地址
api.xxsu.tk http://192.168.0.197:3033 One API 的访问地址

Eidos 在 npm 中的设置

One API 在 npm 中的设置

运行

在浏览器中输入 https://note.xxsu.tk 就能看到设置界面

下拉,选择 Create New 新建数据库

输入 Space name,例如 laosu

Continue 开始创建

创建成功后会进入主界面

笔记

+ 号可以创建文档、表格和文件夹

鼠标在标题上方时,可以添加 IconCover

文字区输入 / 选择块的输入类型

AI

Settings 进入设置界面

Provider

因为 LocalLLM 下载需要点时间,先 Add Provider 测试了一下基于 One API 托管的模型

文章传送门:大模型接口管理和分发系统One API

  • Name :无所谓的,可以是 OneAPI 或者其他的;
  • Type:选择了 OpenAI
  • Base URL:填入了 One API 反代后的公网地址;
  • Api KeyOne API 中的令牌;
  • Models:不需要手动填,如果 Base URLApi Key 设置没问题的话,点 fetch 会自己获取到;

回到主界面,点开 Chat with AI,选择需要聊天的模型

就可以聊天了

LocalLLM

Eidos 使用 WebLLMtransformers.js 提供离线 AI 能力,模型只需下载一次,即可存储在本地。

这指的是同一个浏览器,如果你同一台机器上同时有 ChromeEdge 两个浏览器,则需要分别设置和下载,因为你可以理解为这是两个不同的 app

回到首页还会有拉取动作

加载模型

完成后就可以开始聊天了,至于速度,取决于你的机器性能和问题的复杂度了

Insert into doc 可以把 AI 的回答直接插入到文档中

其他设置

Storage 支持 OPFSNative File System 两种

Sync 是灰的,目前还没有同步服务

官方说可以将空间导出数据,并将其导入到另一台设备,反正有点麻烦

单个文章导入支持 csvmarkdown

可以导出 markdown

参考文档

mayneyao/eidos: Offline alternative to Notion. Eidos is an extensible framework for managing your personal data throughout your lifetime in one place.
地址:https://github.com/mayneyao/eidos

Eidos
地址:https://eidos.space/

Web OPFS 数据持久化 | Mayne’s Blog | gine.me
地址:https://gine.me/posts/70f8e931bc17426fb54127948bcf4a0e