docs: 添加LibreTranslate部署方案
@@ -0,0 +1,248 @@
|
||||
# LibreTranslate 部署方案
|
||||
|
||||
## 1. LibreTranslate 是什么
|
||||
|
||||
LibreTranslate 是一个开源、可自托管的机器翻译服务,基于 Argos Translate 神经翻译引擎。
|
||||
|
||||
特点:
|
||||
|
||||
- 无按字符计费,部署后翻译次数基本不受商业 API 限制
|
||||
- 翻译在本地模型上运行,文本不会发送给 Google、DeepL 等第三方
|
||||
- 提供 REST API,格式和本项目自定义接口兼容
|
||||
- 可离线运行,语言模型下载后不再依赖外网
|
||||
|
||||
## 2. 翻译效果评价
|
||||
|
||||
### 优点
|
||||
|
||||
- 中文、英语、西班牙语等常见语言对可达到日常使用水平
|
||||
- 适合短句、日记、学习辅助、工具类应用
|
||||
- 隐私好,无第三方泄漏风险
|
||||
- 成本低,只承担服务器费用
|
||||
|
||||
### 局限
|
||||
|
||||
- 翻译质量整体低于 DeepL 和 Google Cloud Translation
|
||||
- 长句、文学化表达、俚语、文化语境容易不自然
|
||||
- 部分冷门语言或语言对需要自己查找/安装模型
|
||||
- 首次下载模型较慢,服务器内存不足时响应会变慢
|
||||
|
||||
### 适用场景
|
||||
|
||||
- 个人学习工具
|
||||
- 不需要把文本发送给第三方的内部系统
|
||||
- 对翻译成本敏感的项目
|
||||
- 对质量要求不是“出版级”的应用
|
||||
|
||||
## 3. 推荐部署方式
|
||||
|
||||
推荐使用 Docker Compose,最简单且便于升级。
|
||||
|
||||
### 3.1 环境要求
|
||||
|
||||
```text
|
||||
CPU:2 核以上
|
||||
内存:4GB 以上(至少 2GB)
|
||||
磁盘:10GB 以上,其中模型约 1-4GB
|
||||
系统:Linux 推荐;Windows 使用 Docker Desktop
|
||||
软件:Docker 20.10+,Docker Compose v2
|
||||
```
|
||||
|
||||
### 3.2 Docker Compose 部署
|
||||
|
||||
创建目录:
|
||||
|
||||
```powershell
|
||||
mkdir libretranslate
|
||||
cd libretranslate
|
||||
```
|
||||
|
||||
创建 `docker-compose.yml`:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
libretranslate:
|
||||
image: libretranslate/libretranslate:latest
|
||||
container_name: libretranslate
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "5001:5000"
|
||||
environment:
|
||||
- LT_LOAD_ONLY=zh,es,en
|
||||
- LT_API_KEYS=false
|
||||
- LT_REQ_LIMIT=100
|
||||
- LT_UPDATE_MODELS=true
|
||||
volumes:
|
||||
- lt-models:/app/.local
|
||||
|
||||
volumes:
|
||||
lt-models:
|
||||
```
|
||||
|
||||
启动:
|
||||
|
||||
```powershell
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
查看日志:
|
||||
|
||||
```powershell
|
||||
docker compose logs -f
|
||||
```
|
||||
|
||||
### 3.3 验证翻译服务
|
||||
|
||||
```powershell
|
||||
curl -X POST http://localhost:5001/translate ^
|
||||
-H "Content-Type: application/json" ^
|
||||
-d "{\"q\":\"我喜欢篮球\",\"source\":\"zh\",\"target\":\"es\"}"
|
||||
```
|
||||
|
||||
正常返回类似:
|
||||
|
||||
```json
|
||||
{
|
||||
"translatedText": "Me gusta el baloncesto"
|
||||
}
|
||||
```
|
||||
|
||||
## 4. 与本项目集成
|
||||
|
||||
在本项目“翻译设置”中:
|
||||
|
||||
```text
|
||||
翻译方式:自定义接口
|
||||
接口地址:http://localhost:5001/translate
|
||||
接口密钥:留空
|
||||
扩展配置:
|
||||
{
|
||||
"result_key": "translatedText"
|
||||
}
|
||||
```
|
||||
|
||||
如果 LibreTranslate 和 Web 项目部署在不同机器,接口地址需要写服务器公网或内网地址。
|
||||
|
||||
## 5. 安全与生产部署建议
|
||||
|
||||
### 5.1 仅本机使用
|
||||
|
||||
如果只在本机运行,把 Docker 端口绑定到本机:
|
||||
|
||||
```yaml
|
||||
ports:
|
||||
- "127.0.0.1:5001:5000"
|
||||
```
|
||||
|
||||
### 5.2 使用 API Key
|
||||
|
||||
设置环境变量:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
- LT_API_KEYS=true
|
||||
- LT_API_KEYS_DB_PATH=/app/db/api_keys.db
|
||||
- LT_ADMIN_PASSWORD=你的管理密码
|
||||
```
|
||||
|
||||
启动后访问管理页面生成 API Key,再在项目设置中填入。
|
||||
|
||||
### 5.3 使用 Nginx 反向代理
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name translate.example.com;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:5001;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
建议配合 HTTPS 证书使用。
|
||||
|
||||
### 5.4 只加载需要的语言
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
- LT_LOAD_ONLY=zh,es,en
|
||||
```
|
||||
|
||||
只加载中文、西班牙语、英语模型,可以减少内存占用并加快启动。
|
||||
|
||||
## 6. 常见问题
|
||||
|
||||
### 6.1 模型下载失败
|
||||
|
||||
确认环境变量:
|
||||
|
||||
```yaml
|
||||
LT_UPDATE_MODELS=true
|
||||
```
|
||||
|
||||
并检查服务器是否能访问互联网。
|
||||
|
||||
### 6.2 提示语言未加载
|
||||
|
||||
检查 `LT_LOAD_ONLY` 是否包含要使用的语言,例如:
|
||||
|
||||
```text
|
||||
zh,es,en
|
||||
```
|
||||
|
||||
### 6.3 内存不足
|
||||
|
||||
减少加载语言,或把服务器内存提升到 4GB 以上。
|
||||
|
||||
### 6.4 公共实例返回 403
|
||||
|
||||
不要依赖公共实例,建议部署自己的实例。
|
||||
|
||||
### 6.5 翻译质量不够
|
||||
|
||||
可考虑混合策略:
|
||||
|
||||
- 普通短句:LibreTranslate
|
||||
- 重要长句:MyMemory 或 DeepL Free
|
||||
|
||||
## 7. 其他部署方式
|
||||
|
||||
### 7.1 Railway 一键部署
|
||||
|
||||
访问 Railway 的 LibreTranslate 模板,选择部署即可。
|
||||
|
||||
适合快速测试,模型需要持久化存储。
|
||||
|
||||
### 7.2 Python 源码部署
|
||||
|
||||
```bash
|
||||
pip install libretranslate
|
||||
libretranslate --host 0.0.0.0 --port 5001 --load-only zh,es,en
|
||||
```
|
||||
|
||||
Windows 本地部署建议使用 Docker Desktop,Python 源码方式更容易遇到依赖问题。
|
||||
|
||||
## 8. 与其他服务对比
|
||||
|
||||
| 方案 | 免费额度 | 质量 | 部署难度 | 成本 |
|
||||
|------|---------|------|---------|------|
|
||||
| MyMemory | 约 5000 字符/天 | 中 | 无 | 免费 |
|
||||
| LibreTranslate 自部署 | 无字符限制 | 中 | 中 | 服务器费用 |
|
||||
| DeepL API Free | 50万字符/月 | 高 | 低 | 免费额度 |
|
||||
| Google Translation Basic | 50万字符/月 | 高 | 低 | 免费额度 |
|
||||
| Azure Translator F0 | 200万字符/月 | 高 | 低 | 免费额度 |
|
||||
|
||||
## 9. 总结
|
||||
|
||||
LibreTranslate 是“零按量费用 + 私有部署”的最佳选择,适合本项目作为长期稳定的翻译后端。
|
||||
|
||||
推荐方案:
|
||||
|
||||
```text
|
||||
个人使用:Docker 本机部署 + 127.0.0.1
|
||||
公网使用:Docker 部署 + API Key + Nginx + HTTPS
|
||||
质量优先:保留 MyMemory / DeepL 作为可选配置
|
||||
```
|
||||
Reference in New Issue
Block a user