LibreTranslate 离线翻译部署指南:最小 600MB,全程零联网
【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate
本文面向断网、内网环境需要落地翻译服务的团队。LibreTranslate 是开源自托管翻译引擎,离线翻译依赖 Argos 模型:装好模型后,翻译全程不碰外网,只配中英一对,总体积约 600MB。
为什么需要"断网也能翻译" 🔌
LibreTranslate 的翻译能力不依赖外部 API,而靠 Argos 离线模型——可离线加载的语言对文件包,每个语言对由成对的.argosmodel文件加元数据构成。文件落到本地磁盘后,服务处理每次请求都只读本地文件,因此气隙机房、内网隔离、数据合规场景与联网环境用同一套方式部署。本文要解决两件事:把模型和依赖搬进无网机器,再证明它断网也能正常干活。
部署形态三选一:先对比再动手 ⚡
把服务搬到目标机器有三条路,按环境挑:
| 适合谁 | 启动方式 | 是否联网 |
|---|---|---|
| 开发测试 | LT_MODEL_PATH指向模型目录,跑python main.py | 仅首次安装联网 |
| 生产环境 | 用 docker/Dockerfile 构建,模型烧进镜像 | 仅构建期联网 |
| 无 Python 的机器 | 源码+venv+模型+依赖整包拷 U 盘 | 全程不联网 |
本地方式把模型目录与--load-only启动参数对齐最稳;Docker 方式构建期装好模型、运行时零联网;便携版是前两者的打包形态,目标机没有 Python 就再带一份 Portable Python。
分形态安装步骤:断网环境怎么装离线翻译
本地直跑:从建环境到起服务
建环境、装依赖。以 Python 3.10 为例:
git clone https://gitcode.com/GitHub_Trending/li/LibreTranslate cd LibreTranslate python -m venv venv source venv/bin/activate pip install .pip install .按 pyproject.toml 拉齐依赖,装完无报错即可继续。翻译核心是argos-translate-lt==1.12.1,Web 层是Flask==2.2.5。接着只装中英模型并起服务,监听 5000 端口:
python scripts/install_models.py --load_only_lang_codes "en,zh" python main.py --host 127.0.0.1 --port 5000模型默认落在~/.local/share/argos-translate/packages(Windows 在AppData\Roaming\argos-translate\packages),中英两个模型约 600MB。启动日志出现Loaded support for 2 languages即为加载成功。⚠️ 日志里Cannot update models (normal if you're offline)是断网时跳过索引刷新的正常提示,别当错误处理。
Docker:把模型烧进镜像
构建机能联网时,最省事的做法是构建期直接把模型装进镜像:
docker build --build-arg with_models=true --build-arg models="en,zh,fr" -f docker/Dockerfile .构建完成无报错即成功,运行该镜像并暴露 5000 端口即可。docker/Dockerfile 中with_models/models两个 ARG 控制构建期模型安装,构建完即断网运行。
便携 U 盘:把翻译服务搬过去
无需额外命令。把本地装好的整套——源码目录、venv、模型目录、离线依赖——整体拷贝进 U 盘,目标机用对应解释器起服务;模型放在盘上时,用LT_MODEL_PATH指向 U 盘中的位置。目标机没有 Python 就带一份 Portable Python,起服务后按验收一节核对。
瘦身清单:离线包怎么压到最小体积 📦
- 只装用得上的语言对。
--load_only_lang_codes用 ISO 639-1 短码、逗号分隔;全量约 4GB,只留中英压到 600MB 上下,再少受限于模型本身体积;短码可对照 libretranslate/locales 目录名。 - 依赖提前下成离线缓存。有网机器取 wheel,目标机用
--no-index安装,杜绝运行期联网:
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。
- 三处配置保持离线默认。libretranslate/default_values.py 的条目均可用
LT_前缀环境变量控制: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目录打包带走;版本号建议主.次.修订三段式,方便区分模型变更与 bugfix。
验收与避坑:三连验证证明离线闭环 ✅
先走 health 与 translate:
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"health 正常返回、translate 接口返回{"translatedText":"你好世界",...,"detectedLanguage":{...}}即通过。最后拔掉网络重放同样请求,依然正常返回,离线闭环成立。
高频问题速查:
| 问题 | 原因 | 处理 |
|---|---|---|
报Model not found | --load-only(或--load_only_lang_codes)短码与已装模型不符,或模型目录不可读 | 核对短码与目录,检查读权限 |
| 翻译慢 | --threads仍是默认 4,--debug没关 | 线程数按 CPU 核数调,生产关闭 debug |
| 依赖冲突 | 在线装包与离线缓存混用 | 坚持离线缓存加--no-index,不混装 |
后续想继续压体积,有两个方向值得跟进:一是模型量化,直接缩小单个模型的体积;二是纯前端 WebAssembly 离线版,浏览器内直接完成翻译,连 Python 环境都不用带。
【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考