AI驱动的轻量级笔记应用Blinko

什么是 Blinko ?

Blinko 是一个创新的开源项目,专为想要快速捕捉和整理瞬间想法的个人而设计。Blinko 允许用户在灵感迸发的瞬间无缝记录想法,确保不会错过任何创意火花。

Blinko 的设计初衷是让笔记记录变得更简单,让用户专注于内容本身,而不会被繁琐的管理任务所困扰。Blinko 帮助用户轻松捕捉和管理他们的想法,设计上分为两个核心部分:“闪念”“笔记”

“闪念” 专为记录灵光一闪而打造,用户无需担心格式或复杂操作,即可即刻记下即兴想法。这些记录可设置为每隔一段时间自动清除,确保内容不会过度堆积,从而保持该部分的整洁和高效。

“笔记” 部分提供了更有条理的管理系统,用户可以使用标签对笔记进行分类,并利用批量操作轻松地组织和分类大量笔记。

🚀主要功能:

  • AI 增强的笔记检索 🤖:借助 Blinko 的先进 AI 驱动的 RAG(检索增强生成)技术,您可以使用自然语言查询快速搜索和访问您的笔记,轻松找到所需内容。

  • 数据拥有权 🔒:您的隐私至关重要。所有笔记和数据都安全存储在您自托管的环境中,确保您对信息的完全控制。

  • 高效快速 🚀:即时捕捉想法,并以纯文本形式存储,方便访问,完全支持 Markdown 格式,便于快速格式化和无缝共享。

  • 轻量架构,强大性能 💡:基于 Next.js 构建,Blinko 提供流畅、轻量的架构,具备强大的性能,同时不牺牲速度或效率。

  • 开放协作 🔓:作为一个开源项目,Blinko 欢迎社区的贡献。所有代码透明且可在 GitHub 上获取,促进合作精神和持续改进。

  • 完全免费 🎉Blinko 是且将始终是免费的,没有隐藏费用或锁定在付费墙后的高级功能。

如果不想安装,可以去看看官方的 Live Demo

  • 地址:https://blinko-demo.vercel.app
  • 账号:blinko
  • 密码:blinko

安装

在群晖上以 Docker 方式安装。

本文写作时, latest 版本对应为 0.0.26

采用 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
version: '3'

services:
blinko-website:
image: blinkospace/blinko:latest
container_name: blinko-website
# restart: unless-stopped
environment:
NODE_ENV: production
# NEXTAUTH_URL: http://localhost:1111
# NEXT_PUBLIC_BASE_URL: http://localhost:1111
NEXTAUTH_SECRET: my_ultra_secure_nextauth_secret
DATABASE_URL: postgresql://postgres:mysecretpassword@postgres:5432/postgres
depends_on:
postgres:
condition: service_healthy
# Make sure you have enough permissions.
volumes:
- ./data:/app/.blinko
restart: always
logging:
options:
max-size: "10m"
max-file: "3"
ports:
- 1111:1111
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:1111/"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s

postgres:
image: postgres:14
container_name: blinko-postgres
restart: always
# ports:
# - 5435:5432
volumes:
- ./db:/var/lib/postgresql/data
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: mysecretpassword
TZ: Asia/Shanghai
healthcheck:
test:
["CMD", "pg_isready", "-U", "postgres", "-d", "postgres"]
interval: 5s
timeout: 10s
retries: 5
  • 容器 blinko-postgres 的环境变量
可变
POSTGRES_DB 指定要创建的数据库名称
POSTGRES_USER 定义 PostgreSQL 数据库的用户名
POSTGRES_PASSWORD 设置用于连接 PostgreSQL 数据库的密码
TZ 设置时区
  • 容器 blinko-website 的环境变量
可变
NODE_ENV 设置 Node.js 的运行环境。通常设为 production 用于生产环境
NEXTAUTH_URL 指定 NextAuth.js 的回调 URL,用于处理身份验证。在生产环境中应更改为实际域名
NEXT_PUBLIC_BASE_URL 公开的基础 URL,客户端可以访问,用于构建 API 请求的基础路径。在生产环境中也应设置为实际域名
NEXTAUTH_SECRET 设置用于加密会话和生成 JWT 的秘密字符串
DATABASE_URL 定义数据库连接字符串,用于连接 PostgreSQL 数据库。格式为 postgresql://用户名:密码@主机:端口/数据库名

然后执行下面的命令

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

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

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

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:1111 就能看到登录界面

第一次需要点 Sign Up 注册账号

登录成功后的主界面

设置中文

Settings –> Language 中找到 简体中文

不需要刷新

现在回到 闪念,可以开始记录你的新想法

链接能够直接提取 title 等信息

支持右键菜单

手机上的效果相当哇塞

AI 驱动(失败)

默认情况下,AI 并没有启用

虽然 AI服务商 只能是 OpenAI,但因为可以输入 接口地址,所以老苏打算用其他的 AI 来模拟 OpenAI

文章传送门:

  • 使用 Blinko ai :启用;
  • AI 服务商:只能选 OpenAI
  • 人工智能模型:选择 gpt-3.5-turbo,因为 One API 中模型只设置了 kimigpt-3.5-turbo
  • API Key:用 One API 的令牌;
  • 接口地址:用 One API 的地址;但是要注意,要求必须用 https 开头,格式为 https://域名/v1

设置完成后

回到首界面,右下角会多出一个图标

但是聊天时,返回了错误

1
Error: Error: Error: 503 当前分组 default 下对于模型 text-embedding-ada-002 无可用渠道 (request id: 2024111016093058572008963658571)

说明还需要用到 Embedding 模型。继续用 M3E 来模拟 text-embedding-ada-002

文章传送门:开源文本嵌入模型M3E

这次返回了另一个错误

1
Error: Error: 422 bad response status code 422 (request id: 2024111017481662117653978385149)

M3E 容器中的日志更明确

1
172.17.0.1:33778 - "POST /v1/embeddings HTTP/1.1" 422 Unprocessable Entity

说明请求的格式正确,但是由于含有语义错误无法响应。看来虽然都是嵌入式模型,但两者存在差异。

暂时没想到怎么解决这个问题,或者等待作者支持其他的 AI模型吧。

即便暂时用不上 AI 搜索,Blinko 从设计理念上,也不失为一款很好的轻量级笔记软件。

参考文档

blinko-space/blinko: An open-source, self-hosted personal note tool prioritizing privacy, built using TypeScript .
地址:https://github.com/blinko-space/blinko

Blinko HomePage
地址:https://blinko-doc.vercel.app/

Blinko live demo
地址:https://blinko-demo.vercel.app