LibreTranslate 自建部署完整指南:一条命令跑起私有机器翻译 API
【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate
不想把业务文本发给第三方翻译接口?LibreTranslate 是一个基于开源 Argos Translate 引擎、可自建部署的机器翻译 API,支持离线运行与文件翻译。本文给出一条可照做的部署主线:从安装到验证,再到生产加固,全程只用标准命令行。
📌 项目速览
LibreTranslate 面向开发者与中小团队:它把机器翻译做成本地服务,你只调用自己的http://localhost:5000,文本不出服务器。核心能力一览:
| 能力 | 说明 |
|---|---|
| 离线运行 | 模型下载一次后即可断网使用 |
| 数十种语言 | 中、英、法、德、日等语言互译,/languages可查 |
| 文件翻译 | /translate_file接口支持文档格式翻译 |
| 限流与鉴权 | 请求数限制、API 密钥、Prometheus 指标 |
✅ 部署前准备
- 服务器 2GB 内存起步(默认线程数 4),磁盘预留 1GB 存放语言模型
- Docker 与 Docker Compose;首次启动需联网下载模型
- 确认 5000 端口未被占用(默认端口)
- 翻译质量依赖 Argos Translate 模型,CPU 即可运行
🐳 一条主线装起来
主推 Docker Compose。项目根目录自带 compose 文件(见 docker-compose.yml 与 docker/Dockerfile):
git clone https://gitcode.com/GitHub_Trending/li/LibreTranslate cd LibreTranslate克隆项目源码到本机。
docker compose up -d后台启动官方镜像,容器名libretranslate,映射 5000 端口。
首次启动要下载语言模型,耗时几分钟,日志出现Running on http://0.0.0.0:5000且健康检查通过即就绪。备选方式:pip install libretranslate后运行libretranslate(适合体验);pip install -e .装源码(适合改代码)。
🔍 启动并验证
浏览器访问http://localhost:5000/应出现 Web 界面;交互文档在/docs。再用两条命令确认接口:
curl http://localhost:5000/health返回{"status": "ok"}即服务可用。
curl -X POST http://localhost:5000/translate \ -H 'Content-Type: application/json' \ -d '{"q": "Hello world", "source": "en", "target": "zh"}'返回translatedText字段即最小调用成功。
🔒 生产环境加固清单
| 配置项 | 作用 | 一条示例命令 |
|---|---|---|
| API 鉴权 | 按密钥区分用户并单独限流 | docker exec libretranslate ltmanage keys add 60 --char-limit 200 |
| TLS 加密 | 对外启用 HTTPS | 反向代理(Nginx/Caddy)终止证书,或libretranslate --ssl |
| 数据持久化 | 密钥库不随容器重建丢失 | 挂载卷:-v lt_db:/app/db |
| 请求限流 | 防滥用,按分钟限流 | --req-limit 60 --req-flood-threshold 10 |
| 线程/资源 | 提升并发吞吐 | --threads 8(容器内对应 gunicorn workers) |
开启鉴权时设置环境变量LT_API_KEYS=true,随后可用ltmanage keys add 60 --char-limit 200生成密钥,客户端在请求体或查询参数里传api_key。只翻译少数语言可加--load-only zh,en缩短启动时间;--metrics暴露/metrics供 Prometheus 抓取。
🛠 排障速查
- 现象:
/health拒绝连接 → 原因:模型还在下载、进程未就绪 → 解法:docker logs -f libretranslate等待Running on http://0.0.0.0:5000出现 - 现象:首条翻译请求很慢 → 原因:语言模型首次加载进内存 → 解法:属正常现象,后续请求恢复毫秒级
- 现象:启动报端口占用 → 原因:5000 已被其他服务使用 → 解法:compose 里改为
8080:5000 - 现象:本机正常、别的机器访问不到 → 原因:默认绑定回环地址 → 解法:外部端口映射,或设
LT_HOST=0.0.0.0 - 现象:返回 403 Invalid API key → 原因:密钥不在密钥库中 → 解法:
docker exec libretranslate ltmanage keys add 60重新生成并更新客户端 - 现象:返回 429 → 原因:超过每分钟请求上限 → 解法:调大
--req-limit或为该密钥单独放宽额度
🚀 下一步
LibreTranslate 给你的是一个私有、离线可用、无调用计费的翻译端点。下一步:对照 libretranslate/main.py 里的参数清单逐项核对你的生产配置,有功能需求可参与官方社区讨论。
【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考