部署本地离线机器翻译服务 LibreTranslate

部署本地 LibreTranslate 服务

LibreTranslate 是一个免费开源的机器翻译 API,完全自托管。与其他 API 不同,它不依赖于 Google 或 Azure 等专有提供商来执行翻译。相反,它的翻译引擎由开源的基于 OpenNMTArgos Translate 库提供支持。

Try it online! | API Docs | Community Forum

image

安装

您只需几行设置即可运行自己的 API 服务器!

确保您安装了 Python(建议使用 3.8 或更高版本),然后只需运行:

pip install libretranslate
libretranslate [args]

然后打开网络浏览器访问http://localhost:5000

在 Ubuntu 20.04 上,您还可以使用 https://github.com/argosopentech/LibreTranslate-init 上提供的安装脚本

IDEA翻译插件部署

作者给出的详细步骤:部署本地离线机器翻译服务并在插件中使用

如果GitHub被拦截打不开,可以参考以下的转载。

一、安装 Python

下载并安装 Python,推荐使用 3.83.11 的版本,其他版本在 LibreTranslate 的依赖时会报错。最后配置好环境变量(Windows 安装时勾选 Add python.exe to PATH 即可,建议还勾选“为所有用户安装”)。

检查安装:

# 检查 python 命令
python -V
# 检查 pip 命令
pip -V

配置国内阿里镜像源:

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

二、安装 LibreTranslate

1. 安装

pip install libretranslate

2. 启动服务

libretranslate

第一次启动服务 LibreTranslate 会默认自动下载安装所有语言模型,模型共 88 个,下载需要梯子。另外,启动服务时你也可以指定需要加载的语言模型,例如只需要中英互译:

libretranslate --load-only zh,en

详细服务配置参数参见:官方文档

服务启动成功后通过浏览器访问 http://localhost:5000 即可在 LibreTranslate 提供的 Web 页面进行翻译了:

[LibreTranslate Web

注意:服务第一次启动一但成功安装了任何一个语言模型,下一次启动就不会再下载安装新的语言模型,即使目前安装的模型并不全。庆幸的是你仍然可以通过手动管理这些语言模型。

3. 手动管理语言模型

到语言模型的安装目录中手动添加或者删除语言模型文件即可实现手动对语言模型的管理。语言模型的安装目录:

  • Windows 系统

    # 将 <用户名> 替换为你的系统用户名
    C:\Users\<用户名>\.local\share\argos-translate\packages
  • 其他系统:

    ~/.local/share/argos-translate/packages

你可以到 Argos Open Tech 下载所需要的语言模型(需要梯子)。模型列表中的 From To 是指从xx语言翻译到xx语言,要实现中英互译你至少需要 Chinese -> EnglishEnglish -> Chinese 两个模型。

下载下来的模型文件是一个扩展名为 .argosmodel 的文件,其实它就是一个 ZIP 压缩包改了个扩展名而已。将模型文件的扩展名 .argosmodel 修改为 .zip 后将其解压缩至模型目录即可完成模型安装,要使模型生效需要重启 LibreTranslate 服务。

三、插件内访问 LibreTranslate 服务

1. 安装配置 OpenResty

OpenResty 官方下载页面 下载你所需要的版本并安装。

下载配置文件:openresty.zip

解压缩 openresty.zip 文件得到 conflualib 两个文件夹,Windows 系统的话直接将这两个文件夹覆盖到你的 openresty 的安装目录下即可,如果是其他系统,你可能需要找到并覆盖到对应的目录下。

如果你的 LibreTranslate 服务 Url 不是默认的或者配置了 API key,你需要修改 conf/nginx.conf 配置中以下对应的配置项:

-- 如果需要 API Key,在这里输入你的 API Key
local api_key = ""
-- API 请求地址
local api_url = "http://127.0.0.1:5000/translate"

2. 启动 OpenResty 2.启动OpenResty

Windows 系统只需要运行 openresty 安装目录下的 nginx.exe 即可。

如需停止服务,可运行以下命令:

nginx.exe -s stop

3. 修改 Hosts

在你的系统 Hosts 中添加以下内容:

127.0.0.1 mt.aliyuncs.com

4. 在插件中使用

经过上面的步骤后,插件内的阿里翻译已经被拦截并代理到了本地的 LibreTranslate 服务,只需将插件的翻译引擎设置为阿里翻译(翻译引擎配置中的应用ID和密钥随便乱填就行),即可愉快地使用本地离线机器翻译服务了。

第一次翻译时IDE会提示“不可信服务器的证书”,直接点击对话框左边“接受”按钮即可:

四、注册系统服务(仅 Windows 系统)

经过上面的步骤后,我们就已经可以愉快地使用本地离线的机器翻译服务了,但是每次重启系统后都需要手动启动 LibreTranslateOpenResty,这显然是不太方便的。我们可以将其注册为系统服务,这样就可以实现静默开机自启动了。这里仅以 Windows 系统为例,其他系统可能需要自行查找对应的方法了,也欢迎小伙伴们补充分享其他系统的方法给大家。

1. 设置系统变量(重要)

打开终端管理员从以下选择对应的命令执行以配置 SNAPSNAP_USER_DATA 两个系统环境变量 (必须在终端管理员上执行,否则将会执行失败)

# CMD (管理员)
setx SNAP %USERPROFILE% /M
setx SNAP_USER_DATA %USERPROFILE% /M

# PowerShell (管理员)
setx SNAP $env:USERPROFILE /M
setx SNAP_USER_DATA $env:USERPROFILE /M
注意:这一步比较重要,如果不设置这两个环境变量,后续添加或者删除语言模型将对自启动的 LibreTranslate 服务无效。而对于非 Windows 系统,则无需设置。

2. 安装 WinSW

注意:这里以 WinSW v3 版本为例,如果你使用的是 v2 版本,后续的步骤需要自行调整为 v2 版本对应的方式。建议大家也用 v3 版本的,使用更加方便。

WinSW Releases 上下载 WinSW 可执行文件并将其重命名为 winsw.exe,后面将通过它来创建系统服务。

3. 创建 LibreTranslate 系统服务

下载配置文件:libretranslate.zip

解压缩得到 libretranslate.xml 文件,将其放到一个固定的目录内,执行命令创建系统服务(建议到 xml 文件所在的目录下执行命令以避免出现不可意料的问题,创建服务后不可移动、删除或者重命名此文件):

winsw install libretranslate.xml

此时你可以在任务管理器的服务标签卡内找到名为 LibreTranslate 的系统服务,并能管理其状态,如开始、停止、重新启动等。

也可能通过 WinSW 进行管理,如启动服务:

winsw start libretranslate.xml

删除服务:

winsw uninstall libretranslate.xml

4. 创建 OpenResty 系统服务

下载配置文件:openresty.zip

解压缩得到 openresty.xml 文件,将其放到你的 OpenResty 安装目录内,执行命令创建并启动系统服务(建议到 xml 文件所在的目录下执行命令以避免出现不可意料的问题,创建服务后不可移动、删除或者重命名此文件):

winsw install openresty.xml
winsw start openresty.xml

此时你可以在任务管理器的服务标签卡内找到名为 Openresty 的系统服务,并能管理其状态。

至此,所有安装与配置均已完成,祝你使用愉快!

最后修改:2024 年 04 月 09 日
如果觉得我的文章对你有用,请随意赞赏