Blinko 是一款很棒的开源 AI 知识库笔记应用,部署教程见 Blinko 开源 AI 知识库 Docker 部署指南 。本文中我将使用 Ollama 的本地 Embedding 模型集成,以支持 RAG (Retrieval-Augmented Generation) 检索增强生成 搜索。
无论我们使用哪一家的模型,它都不是全知全能,尤其对于 Blinko 这种主打 AI 驱动的个人知识库来说。
简单来说,Embedding 模型 将本地知识库里的内容(根据模型支持,可以是文档、图像、音频、视频……)转化成 向量 (Vector) 表示,向量本质就是一串数字的集合,类似真正的「向量」,它有正负及数位。
举个例子:
[0.13, 0.85, -0.56, 0.75][0.11, 0.93, -0.49, 0.68]我不是 AI 专家,上面的数据也是胡诌的。但还是大致能看出来,语义越相近,两者的向量距离就越近,这就是 近似度。简而言之,Embedding 模型让 LLM 也能理解文本之间的关系。
现在就能说通,使用 Embedding 模型向量化,让本地知识库支持语义化搜索及其他 AI 集成,是 Blinko 建立 RAG 搜索的核心条件。

除了上面的 AI 搜索界面,应用内搜索也会使用这方面的功能,具体可以自行体验。

Ollama 是跑本地 LLM 模型最简单的方法,API 利于集成,Embedding 模型普遍较小,对性能和环境要求不高,可以很方便的在本地运行。
参考 在 n8n 中使用 Ollama 的本地 LLM 模型 ,仅需在 Blinko 的 Compose 模板中新增服务
ollama:
container_name: ollama
image: ollama/ollama:latest
restart: unless-stopped
environment:
- OLLAMA_HOST=0.0.0.0
- OLLAMA_KEEP_ALIVE=1h # 卸载模型时间
volumes:
- ./ollama:/root/.ollama
现在可以启动容器
sudo docker compose up -d
Ollama 上提供开箱即用的 Embedding 模型选择,体积与性能比较均衡的:
我使用的是 bge-m3:567m 模型,它对中文和英文支持都很好。作为参考,在我的 RS 1000 G12 Pro
服务器上,Ollama 运行模型时 RAM 占用在 1.5GB 作用,目前我在上面运行着多达 20 个 Docker 容器。除了首次 Blinko 重建嵌入向量时,4 个核心短时间占用到 90% 作用,其余时间这个模型运行顺畅。
进入 Ollama 容器 Shell
sudo docker exec -it ollama bash
下载所需的模型
ollama pull bge-m3:latest
Ollama 配置完成
进入 Blinko 的 AI 设置添加供应商

选择 Ollama 添加

在同个 Docker 网络内,基础网址填 http://ollama:11434/api 后点击创建

输入自己下载模型的名称并添加,类型选择 Embedding,对于这款模型嵌入维度填 1024 即可(不填应该也没有影响)。点击测试连接,OK 后点击创建。

配置默认模型

选择好正确的本地模型后,在 AI 设置里重建索引向量

稍等片刻,重建索引向量就完成啦

此后,在需要时,Blinko 都会喊「嗨,🦙小泥马!启动模型,该打工了」。在闲置时,小泥马会默默地从 RAM 中卸载模型(上面设置了存活时间为 1h)。
嗯,很完美~
Blinko 是一款很棒的开源 AI 知识库笔记应用,部署教程见 Blinko 开源 AI 知识库 Docker 部署指南 。本文中我将使用 Ollama 的本地 Embedding 模型集成,以支持 RAG (Retrieval-Augmented Generation) 检索增强生成 搜索。
无论我们使用哪一家的模型,它都不是全知全能,尤其对于 Blinko 这种主打 AI 驱动的个人知识库来说。
简单来说,Embedding 模型 将本地知识库里的内容(根据模型支持,可以是文档、图像、音频、视频……)转化成 向量 (Vector) 表示,向量本质就是一串数字的集合,类似真正的「向量」,它有正负及数位。
举个例子:
[0.13, 0.85, -0.56, 0.75][0.11, 0.93, -0.49, 0.68]我不是 AI 专家,上面的数据也是胡诌的。但还是大致能看出来,语义越相近,两者的向量距离就越近,这就是 近似度。简而言之,Embedding 模型让 LLM 也能理解文本之间的关系。
现在就能说通,使用 Embedding 模型向量化,让本地知识库支持语义化搜索及其他 AI 集成,是 Blinko 建立 RAG 搜索的核心条件。

除了上面的 AI 搜索界面,应用内搜索也会使用这方面的功能,具体可以自行体验。

Ollama 是跑本地 LLM 模型最简单的方法,API 利于集成,Embedding 模型普遍较小,对性能和环境要求不高,可以很方便的在本地运行。
参考 在 n8n 中使用 Ollama 的本地 LLM 模型 ,仅需在 Blinko 的 Compose 模板中新增服务
ollama:
container_name: ollama
image: ollama/ollama:latest
restart: unless-stopped
environment:
- OLLAMA_HOST=0.0.0.0
- OLLAMA_KEEP_ALIVE=1h # 卸载模型时间
volumes:
- ./ollama:/root/.ollama
现在可以启动容器
sudo docker compose up -d
Ollama 上提供开箱即用的 Embedding 模型选择,体积与性能比较均衡的:
我使用的是 bge-m3:567m 模型,它对中文和英文支持都很好。作为参考,在我的 RS 1000 G12 Pro
服务器上,Ollama 运行模型时 RAM 占用在 1.5GB 作用,目前我在上面运行着多达 20 个 Docker 容器。除了首次 Blinko 重建嵌入向量时,4 个核心短时间占用到 90% 作用,其余时间这个模型运行顺畅。
进入 Ollama 容器 Shell
sudo docker exec -it ollama bash
下载所需的模型
ollama pull bge-m3:latest
Ollama 配置完成
进入 Blinko 的 AI 设置添加供应商

选择 Ollama 添加

在同个 Docker 网络内,基础网址填 http://ollama:11434/api 后点击创建

输入自己下载模型的名称并添加,类型选择 Embedding,对于这款模型嵌入维度填 1024 即可(不填应该也没有影响)。点击测试连接,OK 后点击创建。

配置默认模型

选择好正确的本地模型后,在 AI 设置里重建索引向量

稍等片刻,重建索引向量就完成啦

此后,在需要时,Blinko 都会喊「嗨,🦙小泥马!启动模型,该打工了」。在闲置时,小泥马会默默地从 RAM 中卸载模型(上面设置了存活时间为 1h)。
嗯,很完美~