ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

LibreTranslate 离线翻译 API 部署教程:三步搞定断网环境可用的本地机器翻译

LibreTranslate 离线翻译 API 部署教程:三步搞定断网环境可用的本地机器翻译 LibreTranslate 离线翻译 API 部署教程三步搞定断网环境可用的本地机器翻译【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate网络一断依赖云端接口的翻译服务立刻罢工气闸隔离的内部环境按合规要求本来就不许调用外部 API出差驻场时你总不能指望流量去翻技术文档。好消息是LibreTranslate 这个免费开源的机器翻译 API 天生就是自托管、可离线设计的——语言模型落到本地之后服务不再触碰任何外部接口。读完这篇你可以按语言对挑选模型避免几 GB 的全量下载在完全无网的目标机器上装好全部 Python 依赖让/translate和/detect两个接口在本地端口跑起来并用 curl 验证一、先选路动手前把路线定好选对路比跑得快更重要。你的场景推荐路线空间需求约难度本机试用、内部测试APython 直接运行几百 MB 到 1 GB★无网机器部署B联网机打包 传输压缩包 1 GB 上下取决于模型★★★目标机已有 DockerC构建含模型镜像镜像 1 GB 起★★ 提示三条路线的差异只在“模型下载”这一步放在哪台机器做后面的用法完全一样。二、环境自检先自检能省掉后面一半排障时间。最低配置推荐配置Python3.83.10内存2 GB4 GB磁盘2 GB 可用5 GB 可用全量模型Docker路线 C 才需要20.1024.0 配 Compose v2路线 B 需要两台机器一台打包机有网一台目标机无网。核心依赖版本可在 pyproject.toml 里核对翻译引擎为argos-translate-lt1.12.1Web 框架 Flask 2.2.5。三、按步执行整个流程里唯一的联网窗口是第 2 步其余全部可以离线完成。第 1 步获取源码并装好主程序本步目标在打包机上拿到 v1.9.6 源码且不污染系统环境。# 克隆源码并创建独立虚拟环境 git clone https://gitcode.com/GitHub_Trending/li/LibreTranslate cd LibreTranslate python -m venv venv# 激活环境并安装主程序Windows 用 venv\Scripts\activate source venv/bin/activate pip install .如何确认成功pip show libretranslate输出Version: 1.9.6。第 2 步选择性下载语言模型关键离线步骤本步目标只下载你要的语言对把体积压下来——这步必须在有网时完成。# 只下载英、中、法之间的互译模型 python scripts/install_models.py --load_only_lang_codes en,zh,fr如何确认成功日志出现Loaded support for X languages (Y models total)!且~/.local/share/argos-translate目录下出现模型文件Windows 在%LOCALAPPDATA%\argos-translate。⚠️ 注意语言代码写错会直接报错Unavailable language codes: xx。对照 libretranslate/locales/ 下的目录名核对如zh、fr、ja。不传参数裸跑则下载全量模型占用数 GB。第 3 步把依赖和模型打成离线包本步目标把“装的时候要联网的东西”全部变成文件。# 导出依赖清单并下载所有 wheel 到本地目录 pip freeze requirements.txt pip download -r requirements.txt -d wheels/# 把模型复制进项目然后打包源码wheel模型 cp -r ~/.local/share/argos-translate ./models tar -czf lt-offline.tar.gz --excludevenv --exclude.git .如何确认成功ls -lh lt-offline.tar.gz看到压缩包体积以实际输出为准tar -tzf lt-offline.tar.gz | head能看到wheels/和models/都在里面。⚠️ 注意wheel 是平台相关的。打包机的操作系统和架构必须与目标机一致否则第 4 步会缺包只能回打包机重新pip download。第 4 步离线机上安装并验证服务本步目标在断网环境把服务跑通确认翻译、检测接口可用。先把压缩包传到目标机解压然后# 恢复模型到 Argos 默认读取位置 mkdir -p ~/.local/share cp -r models ~/.local/share/argos-translate# 重建环境、仅从本地 wheel 安装、启动服务 python -m venv venv source venv/bin/activate pip install --no-index --find-linkswheels/ . python main.py --host 127.0.0.1 --port 5000如何确认成功启动日志出现Loaded support for X languages...!。然后另开终端# 调翻译接口英文翻中文 curl -X POST http://127.0.0.1:5000/translate \ -d qHello worldsourceentargetzh响应里translatedText是正确译文即通过。再顺手验证语言检测和语言列表# 检测语言 查看已装语言列表 curl http://127.0.0.1:5000/detect -d qBonjour tout le monde curl http://127.0.0.1:5000/languages前者应识别出fr后者返回你第 2 步选的语言集合。第 5 步路线 C用 Docker 替代手工打包本步目标目标机有 Docker 时跳过手工装依赖直接交付“代码模型”镜像。# 在打包机构建只含中、英、法模型的镜像 docker build -t lt-offline:1.9.6 -f docker/Dockerfile \ --build-arg with_modelstrue --build-arg modelsen,zh,fr .# 导出镜像文件 → 传到离线机 → 加载 → 启动 docker save lt-offline:1.9.6 -o lt-offline.tar docker load -i lt-offline.tar docker run -d -p 5000:5000 --name lt lt-offline:1.9.6如何确认成功docker logs lt出现Loaded support for X languages...!宿主机 curl 5000 端口能拿到译文。⚠️ 注意docker/Dockerfile 基于python:3.11.14-slim无网机需要先把这个基础镜像用docker save/load搬过去构建时同样要联网拉包。四、排障常见报错修复离线环境八成是“哪份文件没拷过来”这类问题。症状启动时看到Cannot update models (normal if youre offline)最可能原因libretranslate/init.py 尝试刷新远端模型索引被断网挡住是提示不是错误解决命令无需处理确认UPDATE_MODELS为默认 False 即可见 libretranslate/default_values.py症状下载模型时报ValueError: Unavailable language codes: xx最可能原因语言代码不在 Argos 包列表里解决命令先跑python scripts/install_models.py --load_only_lang_codes en,zh单对验证再逐个加症状离线机启动后语言列表为空、翻译报语言不支持最可能原因模型没有恢复到~/.local/share/argos-translate解决命令ls ~/.local/share/argos-translate确认为空时重跑第 4 步的cp -r models ~/.local/share/argos-translate症状Address already in use最可能原因5000 端口被占用解决命令python main.py --port 5001换端口环境变量LT_PORT等效症状pip install --no-index报找不到依赖最可能原因wheel 是在不同操作系统/架构的机器上下的解决命令回到与目标机同平台的打包机重新执行第 3 步的pip download再打包五、进阶优化可选非必做服务跑稳是第一目标优化是锦上添花以下都不做也完全能上线。优化项做法收益风险缩模型数量下载时--load_only_lang_codes只挑常用语言对磁盘从数 GB 降到几百 MB新增语言需重新打包传输翻译缓存设置LT_TRANSLATION_CACHE启用缓存实现见 libretranslate/cache.py重复请求更快占用额外内存配置不当影响一致性限流防护设置LT_REQ_LIMIT限制单客户端每分钟请求数默认 -1 不限防单机打满值设太低会误伤正常调用指标监控设置LT_METRICSTrue同时配LT_METRICS_AUTH_TOKEN可接 Prometheus 观察负载不配 token 会暴露指标六、上线前清单上线前把下面几项逐条过一遍启动日志出现Loaded support for X languages数量与所选语言对一致/translate、/detect、/languages三个接口均正常响应拔掉网线重启一次服务仍然可用UPDATE_MODELS保持 False不会偷偷尝试连远端长期对外使用时已配置LT_REQ_LIMIT、LT_CHAR_LIMIT防滥用版本与更新方式版本号记录在 VERSION当前 1.9.6建议离线包按“版本号日期”命名例如lt-offline-1.9.6-20250901.tar.gz。需要升级时在有网机器上跑python scripts/install_models.py --update --load_only_lang_codes en,zh,fr增量更新模型再把新的models/目录重新压缩成一个小更新包传过去替换即可不必重建整个离线包。【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表