自建翻译API只需一条命令:LibreTranslate本地部署实操指南
2026/9/16 14:55:33 网站建设 项目流程

自建翻译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。定位上的差别就三点:

维度商业翻译APILibreTranslate
数据流向文本发到第三方服务器全程在本机,可离线
费用按字符或调用量计费部署后不再产生调用费用
可用性依赖对方服务状态服务在就一直在,断外网也不影响

它不是用来替代大模型的,而是承担"批量、稳定、私密"的那类翻译任务:文档批处理、内网应用兜底翻译、不想出网的合规场景。

🚀 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_PORT127.0.0.1/5000监听地址与端口
LT_REQ_LIMIT-1全局每分钟请求上限,-1 为不限
LT_CHAR_LIMIT-1单请求字符上限
LT_API_KEYSfalse启用 API 密钥数据库
LT_LOAD_ONLY只加载指定语言对,如en,zh,fr
LT_THREADS4并发处理线程数
LT_SSLfalse启用 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询