自建翻译API只需一条命令:LibreTranslate本地部署实操指南
【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate
LibreTranslate 是一个开源、可完全离线运行的机器翻译 API,基于 Argos Translate 引擎,部署在你自己的机器上,文本不经过任何第三方服务器。适合想把自建翻译API跑在本地、对内网可用、又不想按调用量付费的开发者,5 分钟就能拿到可用的翻译接口。
它和你平时用的翻译接口有什么不同
平时调用的翻译接口,文本要先发到对方的云端再返回;LibreTranslate 把整个翻译引擎搬到了你自己机器上,引擎是开源的 Argos Translate。定位上的差别就三点:
| 维度 | 商业翻译API | LibreTranslate |
|---|---|---|
| 数据流向 | 文本发到第三方服务器 | 全程在本机,可离线 |
| 费用 | 按字符或调用量计费 | 部署后不再产生调用费用 |
| 可用性 | 依赖对方服务状态 | 服务在就一直在,断外网也不影响 |
它不是用来替代大模型的,而是承担"批量、稳定、私密"的那类翻译任务:文档批处理、内网应用兜底翻译、不想出网的合规场景。
🚀 5 分钟跑起来
最简路径就是 Docker 一条命令:
docker run -d -p 5000:5000 libretranslate/libretranslate:latest首次启动会下载语言模型,可能要等一两分钟。起来之后用下面这条命令验证:
curl -s http://localhost:5000/languages如果返回一个 JSON 数组,里面是各语言的代码和名称,说明服务正常。再打开浏览器访问http://localhost:5000,能看到自带的翻译 Web 界面,可以直接在页面上试翻。
三个最常见用法
单句翻译
/translate接口接受q(文本)、source(源语言)、target(目标语言)三个参数:
curl -s http://localhost:5000/translate \ -d "q=Good morning" -d "source=en" -d "target=zh"返回 JSON 里的translatedText字段就是译文,例如"早上好"。
批量翻译
同一个接口把q传一个数组即可一次翻多条,能省掉大量往返请求:
curl -s http://localhost:5000/translate \ -d 'q=["Hello","Goodbye"]' \ -d "source=en" -d "target=zh"返回的translatedText也是数组,顺序与传入文本一一对应。
语言检测
不知道文本是什么语言时,可以先调/detect判断,再把结果作为source传给翻译接口:
curl -s http://localhost:5000/detect -d "q=Hello world"返回每个候选语言的置信度,取置信度最高的那个语言代码即可,这样就不用再传source=auto。
上线前必须做的 3 件事
1. 开启 API 密钥。默认任何拿到地址的人都能调用,对外暴露前应要求调用方带上密钥。开启后用仓库里的 manage.py 管理:python manage.py keys add 100会创建一个每分钟限 100 次的密钥并打印出来,删密钥用keys remove <key>。
2. 设置请求限速。每个密钥可以单独设每分钟的请求数(上面 add 时的第一个参数就是限速值),没带密钥的请求则受全局LT_REQ_LIMIT约束,默认 -1 表示不限速,公网环境一定要改成具体数字。
3. 上 HTTPS。翻译内容往往比想象中敏感,别裸跑 HTTP。可以用--ssl参数配合证书直接启用,更推荐的做法是在前面挂一层 Nginx 反向代理,由 Nginx 终结 TLS。
常用的环境变量(对应 libretranslate/default_values.py 中的默认值):
| 环境变量 | 默认值 | 作用 |
|---|---|---|
LT_HOST/LT_PORT | 127.0.0.1/5000 | 监听地址与端口 |
LT_REQ_LIMIT | -1 | 全局每分钟请求上限,-1 为不限 |
LT_CHAR_LIMIT | -1 | 单请求字符上限 |
LT_API_KEYS | false | 启用 API 密钥数据库 |
LT_LOAD_ONLY | 空 | 只加载指定语言对,如en,zh,fr |
LT_THREADS | 4 | 并发处理线程数 |
LT_SSL | false | 启用 SSL |
踩坑快问快答
端口 5000 被占了怎么办?启动参数换成别的端口即可,比如-p 8080:5000,容器内端口不用动。
第一次翻译特别慢,之后变快?模型在首次使用时才加载进内存,预热完就正常了。可以提前用/translate翻一句把常用模型"焐热"。
内存不够用、加载语言太多?用--load-only en,zh,fr只装你需要的语言对,启动快、内存占用小得多。
离线环境怎么装模型?在有网的机器上先跑docker pull并启动一次让模型下载完,再把模型目录备份迁移到内网机器,挂到容器的/home/libretranslate/.local。
支持哪些语言?启动后访问/languages接口,以接口返回为准,比任何文档都准。
以上配置项和启动参数在 README.md 里能找到入口,更完整的参数说明见仓库内 libretranslate/main.py 的 argparse 定义。LibreTranslate 本身很小:一条 Docker 命令起步,把密钥、限速、HTTPS 三件事补上,就是一个能直接进生产环境的自建翻译服务。
【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考