LibreTranslate 离线翻译部署指南:最小 600MB,全程零联网
2026/9/20 11:54:50 网站建设 项目流程

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),仅供参考

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

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

立即咨询