LibreTranslate 离线部署实战:3条命令装好翻译服务,中英双模型约600MB
【免费下载链接】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 语言模型工作,装好模型后翻译全程不碰外网。
项目定位
LibreTranslate 是免费开源的机器翻译 API,自托管、无调用限制、不依赖任何专有服务。它的引擎核心是argos-translate-lt==1.12.1,Web 层用Flask==2.2.5。模型一旦落到本地,整个翻译闭环就与外网无关——这正是它适合离线场景的原因。
最小安装
先说清楚:这三步分别解决"拿代码"、"下模型"、"起服务"的问题,每步一个命令块。
拿到源码并装依赖(以 Python 3.10 为例,pip install .会按pyproject.toml拉齐全部依赖):
git clone https://gitcode.com/GitHub_Trending/li/LibreTranslate cd LibreTranslate python -m venv venv source venv/bin/activate pip install .只装中英互译模型,别全量下:
python scripts/install_models.py --load_only_lang_codes "en,zh"起服务,监听本机 5000 端口:
python main.py --host 127.0.0.1 --port 5000启动日志出现Loaded support for 2 languages即模型加载成功。你可能会发现日志里有一句Cannot update models (normal if you're offline)——这是init.py的boot()在提示跳过模型索引刷新,属正常现象,别当错误处理。
实测只装 en、zh 两个模型,磁盘占用约 600MB,启动很快。模型默认落在~/.local/share/argos-translate/packages(Windows 在AppData\Roaming\argos-translate\packages),里面是成对的.argosmodel文件和元数据。
按场景裁剪
先问自己一句:离线这件事,你想解决的是体积、安装、还是配置?对号入座。
体积压到最小
只装真用得上的语言对,这是最省空间的办法。--load_only_lang_codes接受 ISO 639-1 短码,逗号分隔;可用代码对照 libretranslate/locales/ 目录名。实测全量装一遍约 4GB,只留中英约 600MB,再往下压不动了——这是模型本身的体积决定的。
安装过程零联网
有网机器先把依赖下成 wheel 存档,目标机再离线安装:
pip freeze > requirements_offline.txt pip download -r requirements_offline.txt -d dependencies/ --only-binary=:all: pip install --no-index --find-links=./dependencies/ -r requirements_offline.txt跨 Linux 发行版迁移时用 manylinux 兼容的 wheel;Windows 目标机换--platform win_amd64。注意别把在线装包和离线缓存混着来,依赖冲突大多出在这。
配置默认值确认一遍
全部配置走LT_前缀的环境变量,默认值集中在 libretranslate/default_values.py。离线场景盯三处:UPDATE_MODELS保持默认False、SHARED_STORAGE保持memory://(内存计数,不依赖 Redis)、API_KEYS_REMOTE留空。这三处默认值天然适合离线,一般不用动。
日后要刷新模型
在联网机执行python scripts/install_models.py --load_only_lang_codes "en,zh" --update,然后把~/.local/share/argos-translate/packages整个打成更新包带走即可。
部署形态选型
| 形态 | 做法 | 适用场景 | 代价 |
|---|---|---|---|
| 本地直跑 | LT_MODEL_PATH指向模型目录,python main.py | 开发测试,最省事 | 要自己保证--load-only参数与已装模型目录对齐,否则容易报Model not found |
| Docker | docker build --build-arg with_models=true --build-arg models="en,zh,fr" -f docker/Dockerfile . | 生产环境推荐 | 构建慢一些,镜像体积大;对应docker/Dockerfile里的with_models/models两个 ARG,构建期装好模型,运行时零联网 |
| 便携版 | 源码+venv+模型+依赖整体拷进 U 盘 | 目标机无网、甚至无 Python 的极端场景 | 打包工作量最大;无 Python 的机器还要带一份 Portable Python |
本地直跑最轻但靠人肉对齐参数;Docker 把模型固化进镜像、最省心;便携版本质是前两者的打包形态,按你的目标机情况挑一个即可。
自检与排错
验收两条命令,复制即用:
curl http://localhost:5000/health curl -X POST http://localhost:5000/translate \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "q=Hello%20world&source=en&target=zh"翻译接口应返回{"translatedText":"你好世界",...,"detectedLanguage":{...}}。最后断网重测一遍,服务照常响应,离线闭环才算成立。
三个高频问题,按"症状→原因→解法"记:
- 报
Model not found:多是--load-only(或--load_only_lang_codes)指定的短码与已装模型对不上。核对短码,再确认模型目录可读。 - 翻译慢:CPU 没用满。
--threads默认 4,按核数调大;生产环境顺手关掉--debug。 - 依赖冲突:装包方式混用了。坚持"离线缓存 +
--no-index"一条路走到底。
接下来三件事就可以动手了:先装en,zh双模型跑通翻译;按目标机情况在本地、Docker、便携三种形态里选一个定型;装完用上面的 curl 命令加断网重测完成验收。往后可以关注两个方向:模型量化进一步压体积,以及纯前端 WebAssembly 离线版。
【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考