从 Seafile 13 开始,用户可以启用 Seafile AI,支持以下功能:
-
文件标签、文件和图片摘要、文本翻译、SDoc 写作辅助
-
根据图片生成对应标签(包括对象、天气、颜色等)
-
检测图片中的人脸并进行编码
-
检测图片中的文本(OCR)
Seafile 中的 AIGC 声明
借助大语言模型、面部识别模型和算法开发,Seafile AI 支持图像识别和文本生成。
生成的内容具有多样性和随机性,用户需要自行判断生成内容的可靠性。
Seafile 对 AI 生成内容(AIGC)不承担责任。
同时,Seafile AI 支持使用自定义 LLM 和面部识别模型。不同的大语言模型对 AIGC 的影响不同(包括功能和性能),因此 Seafile 不对以下内容负责:
1.
生成速度(tokens/s);
2.
Token 消耗;
3.
生成内容。
包括但不限于:
1.
基础模型(包括模型基础算法)
2.
参数数量
3.
量化等级
当用户使用自己的 OpenAI 兼容 API LLM 服务(如 LM Studio、Ollama)并使用自裁剪或删减模型时,Seafile 不对可能出现的错误负责(如无限循环输出无意义内容)。
同时,Seafile 不建议使用 SeaDoc 等文档来评估删减模型的性能。
部署 Seafile AI 基础服务
在主机上与 Seafile 一起部署 Seafile AI
Seafile AI 基础服务通过 API 调用外部大语言模型服务,实现以下功能:
文件标签、
文件和图片摘要、
文本翻译和
SDoc 写作辅助
Seafile AI 需要使用 Redis 作为缓存。
在
.env
文件中设置:
CACHE_PROVIDER=redis
并正确配置 Redis 相关信息。
1.
下载 Seafile AI Docker Compose 文件
wget https://manual.seafile.com/13.0/repo/docker/seafile-ai.yml
2.
修改
.env
文件
插入或修改以下字段:
如果使用
gpt-4o-mini 模型:
# 添加 seafile-ai.yml
COMPOSE_FILE='...,seafile-ai.yml'
ENABLE_SEAFILE_AI=true
# OpenAI LLM 访问密钥
SEAFILE_AI_LLM_KEY=****
如果使用其他模型:
# add seafile-ai.yml
COMPOSE_FILE='...,seafile-ai.yml'
ENABLE_SEAFILE_AI=true
SEAFILE_AI_LLM_TYPE=other
# your LLM API endpoint
SEAFILE_AI_LLM_URL=https://api.openai.com
# LLM 访问密钥
SEAFILE_AI_LLM_KEY=*******
# your model id
SEAFILE_AI_LLM_MODEL=gpt-4o-mini
关于使用
自定义模型
Seafile AI 支持使用自定义大模型,但必须满足以下条件:
1.
支持 OpenAI 兼容的 API
2.
大模型支持多模态(例如支持图像等)
3.
重启 Seafile 服务器
docker compose down
docker compose up -d
在另一台主机部署 Seafile AI
1.
下载 Seafile AI Docker Compose 文件和环境配置
wget https://manual.seafile.com/13.0/repo/docker/seafile-ai/seafile-ai.yml
wget -O .env https://manual.seafile.com/13.0/repo/docker/seafile-ai/env
2.
修改
.env
文件
根据下表配置相关字段:
变量
描述
SEAFILE_VOLUME
Seafile AI 服务数据的卷目录
JWT_PRIVATE_KEY
JWT 密钥,与 Seafile
.env
文件中的配置相同
INNER_SEAHUB_SERVICE_URL
内网访问 Seahub 组件的 URL,例如
http://<你的 Seafile 服务器内网 IP>
REDIS_HOST
Redis 服务器地址
REDIS_PORT
Redis 服务器端口
REDIS_PASSWORD
Redis 服务器密码
SEAFILE_AI_LLM_TYPE
大语言模型类型。
openai
(默认)使用 OpenAI 的 gpt-4o-mini 模型,
other
用于用户自定义的多模态模型
SEAFILE_AI_LLM_URL
LLM API 接口地址,仅当
SEAFILE_AI_LLM_TYPE=other
时需要指定,默认值为
https://api.openai.com/v1
SEAFILE_AI_LLM_KEY
LLM API 密钥
FACE_EMBEDDING_SERVICE_URL
人脸嵌入服务的 URL
SEAFILE_AI_LLM_MODEL
LLM 模型 ID(或名称),仅当
SEAFILE_AI_LLM_TYPE=other
时需要指定,默认值为 gpt-4o-mini
3.
启动 Seafile AI 服务器
docker compose up -d
4.
修改部署了 Seafile 的主机的
.env
文件
SEAFILE_AI_SERVER_URL=http://<你的 Seafile AI 主机>:8888
5.
重启 Seafile 服务器
docker compose down && docker compose up -d
部署人脸嵌入服务(可选)
人脸嵌入服务用于检测并编码图像中的人脸,是 Seafile AI 的扩展组件。一般建议在具备 GPU 的机器上部署,并且需要显卡驱动支持 OnnxRuntime(因此也可以在不同于 Seafile AI 基础服务的机器上单独部署)。目前,Seafile AI 人脸嵌入服务仅支持以下两种模式:
-
Nvidia GPU 模式:使用 CUDA 12.4 加速环境(至少需要 Nvidia Geforce 531.18 驱动),并且需要安装 Nvidia Container Toolkit。
-
纯 CPU 模式。
如果你计划在 GPU 环境中部署人脸嵌入服务,需要确保显卡在加速环境支持范围内(例如支持 CUDA 12.4),并且正确映射到
/dev/dri
目录。因此,在部分情况下,某些云服务器和特定驱动版本下的 WSL 可能不被支持。
1.
下载 Docker Compose 文件
CUDA 模式:
wget -O face-embedding.yml https://manual.seafile.com/13.0/repo/docker/face-embedding/cuda.yml
CPU 模式:
wget -O face-embedding.yml https://manual.seafile.com/13.0/repo/docker/face-embedding/cpu.yml
2.
修改
.env
文件
插入或修改以下字段:
# 添加 face-embedding.yml
COMPOSE_FILE='...,face-embedding.yml'
FACE_EMBEDDING_VOLUME=/opt/face_embedding
3.
重启 Seafile 服务器
docker compose down
docker compose up -d
4.
在资料库设置中启用人脸识别
进入资料库设置,开启人脸识别功能
在与 Seafile AI 基础服务不同的机器上部署人脸嵌入服务
由于人脸嵌入服务可能需要部署在带有 GPU 的主机上,因此它可能无法与 Seafile AI 基础服务部署在同一台机器上。这时,你需要对 Docker Compose 文件进行一些修改,以确保服务能够正常访问。
修改
.yml
文件,删除注释掉的行以暴露服务端口:
services:
face-embedding:
...
ports:
- 8886:8886
修改部署了Seafile的机器上的.env文件:
ENABLE_FACE_RECOGNITION=true
修改部署了 Seafile AI 的机器上的
.env
文件:
FACE_EMBEDDING_SERVICE_URL=http://<your face embedding service host>:8886
确保
.env
文件中设置了
JWT_PRIVATE_KEY
,并且与 Seafile 服务器保持一致。
重启 Seafile 服务器:
docker compose down
docker compose up -d
持久化存储卷和模型管理
默认情况下,持久化存储卷路径是
/opt/face_embedding
,它包含两个子目录:
-
/opt/face_embedding/logs :包含人脸嵌入的启动日志和访问日志
-
/opt/face_embedding/models :包含人脸嵌入的模型文件。每次启动时会自动获取最新可用模型,这些模型托管在 Hugging Face 仓库。当然,你也可以手动将自己的模型下载到此目录(如果自动拉取模型失败,也可以手动下载)。
自定义模型服务访问密钥
默认情况下,人脸嵌入服务使用的访问密钥与 Seafile 服务器相同,即
JWT_PRIVATE_KEY
。但出于安全原因,有时需要修改。如果你需要为人脸嵌入自定义访问密钥,可以执行以下步骤:
修改人脸嵌入服务和 Seafile AI 的
.env
文件:
FACE_EMBEDDING_SERVICE_KEY=<your customizing access keys>
重启 Seafile 服务器:
docker compose down
docker compose up -d
高级操作
启用 AI 使用统计
Seafile 支持统计用户的 AI 使用情况(例如消耗了多少 tokens),并支持为用户设置每月 AI 配额。
打开
$SEAFILE_VOLUME/seafile/conf/seahub_settings.py
,并添加 AI 价格信息(即每个 token 的费用):
AI_PRICES = {
"gpt-4o-mini": { # 将 gpt-4o-mini 替换为你的模型名称
"input_tokens_1k": 0.0011, # 每 1000 个输入 token 的价格
"output_tokens_1k": 0.0044 # 每 1000 个输出 token 的价格
}
}
组织用户的 monthly_ai_credit_per_user
对于组织团队用户,
monthly_ai_credit_per_user
将应用到整个团队。例如,如果
monthly_ai_credit_per_user
设置为 2(比如以美元为单位),团队中有 10 个成员,那么团队的总配额就是:2 × 10 = 20$