Replies: 5 comments 22 replies
-
果然是大佬 我在本地琢磨 docker 部署都失敗了 大佬已經給出方案了 |
Beta Was this translation helpful? Give feedback.
0 replies
-
https://blog.csdn.net/qq_41481367/article/details/134293973 |
Beta Was this translation helpful? Give feedback.
1 reply
-
我访问那个地址,没有通,本地部署失败了,谁能教教我么? |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
教程:部署本地离线机器翻译服务并在插件中使用
前言
前些时候小伙伴 @hepengzhou8015 向我提出了自定义翻译引擎相关的需求建议,以便满足其本地离线翻译的需求。这并不是第一个提出这样需求的小伙伴,很早就有其他小伙伴提出了,我也早早地定制了相关的开发计划,计划中翻译引擎在 v4.0 时会有较大的改变,届时顺便推出此功能,而在那之前并不是加入此类灵活通用或者更多的翻译引擎的最佳时机,如果现在草草地加入一个简单的实现,到时候可能会被完全舍弃,重新设计实现,这完全是没有必要的。所以,我只好请他耐心等待 v4.0 的推出。但随后他向仍来一个可本地部署的开源机器翻译项目:LibreTranslate,我稍微了解了一下该项目,顿时被狠狠地震撼了一把,只恨没有早些知道这么一个项目,离线翻译也是一个很重要的一个需求。默默地看了一眼并不存在的插件开发计划表,感到有些无力,忽然我灵机一动,或许可以想个办法来临时解决这个问题,让大家能提前使用到本地离线的翻译服务。于是就有了这一篇教程,希望能帮助到有需求的小伙伴们。至于为什么另想个一个旁门左道的办法而不是直接开发一个插件分支版本来支持此需求,还请容我狡辩一二:一是这样不影响后续版本的更新,有新版本插件发布可以正常更新。二是实在是没有更多精力来维护分支版本了,一但出现Bug或兼容问题,将得不到解决。好了,废话不多说,让我们开始吧。
部署本地 LibreTranslate 服务
LibreTranslate 是一个免费开源的机器翻译 API,完全自托管。与其他 API 不同,它不依赖于 Google 或 Azure 等专有提供商来执行翻译。相反,它的翻译引擎由开源的基于 OpenNMT 的 Argos Translate 库提供支持。
一、安装 Python
下载并安装 Python,推荐使用
3.8
到3.11
的版本,其他版本在 LibreTranslate 的依赖时会报错。最后配置好环境变量(Windows 安装时勾选Add python.exe to PATH
即可,建议还勾选“为所有用户安装”)。检查安装:
配置国内阿里镜像源:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
二、安装 LibreTranslate
1. 安装
2. 启动服务
第一次启动服务 LibreTranslate 会默认自动下载安装所有语言模型,模型共 88 个,下载需要梯子。另外,启动服务时你也可以指定需要加载的语言模型,例如只需要中英互译:
详细服务配置参数参见:官方文档
运行启动服务命令后,当看到控制台打印以下输出就说明服务已经成功启动:
随后通过浏览器访问 http://localhost:5000 即可在 LibreTranslate 提供的 Web 页面进行翻译了:
3. 手动管理语言模型
到语言模型的安装目录中手动添加或者删除语言模型文件即可实现手动对语言模型的管理。语言模型的安装目录:
Windows 系统
其他系统:
你可以到 Argos Open Tech 下载所需要的语言模型(需要梯子)。模型列表中的
From
To
是指从xx语言翻译到xx语言,要实现中英互译你至少需要Chinese -> English
和English -> Chinese
两个模型。下载下来的模型文件是一个扩展名为
.argosmodel
的文件,其实它就是一个 ZIP 压缩包改了个扩展名而已。将模型文件的扩展名.argosmodel
修改为.zip
后将其解压缩至模型目录即可完成模型安装,要使模型生效需要重启 LibreTranslate 服务。三、插件内访问 LibreTranslate 服务
1. 安装配置 OpenResty
到 OpenResty 官方下载页面 下载你所需要的版本并安装。
下载配置文件:openresty.zip
解压缩
openresty.zip
文件得到conf
和lualib
两个文件夹,Windows 系统的话直接将这两个文件夹覆盖到你的openresty
的安装目录下即可,如果是其他系统,你可能需要找到并覆盖到对应的目录下。如果你的 LibreTranslate 服务 Url 不是默认的或者配置了
API key
,你需要修改conf/nginx.conf
配置中以下对应的配置项:2. 启动 OpenResty
Windows 系统只需要运行
openresty
安装目录下的nginx.exe
即可。如需停止服务,可运行以下命令:
3. 修改 Hosts
在你的系统
Hosts
中添加以下内容:4. 在插件中使用
经过上面的步骤后,插件内的阿里翻译已经被拦截并代理到了本地的 LibreTranslate 服务,只需将插件的翻译引擎设置为阿里翻译(翻译引擎配置中的应用ID和密钥随便乱填就行),即可愉快地使用本地离线机器翻译服务了。
第一次翻译时IDE会提示“不可信服务器的证书”,直接点击对话框左边“接受”按钮即可:
翻译效果:
翻译效果还是很不错的。
四、注册系统服务(仅 Windows 系统)
经过上面的步骤后,我们就已经可以愉快地使用本地离线的机器翻译服务了,但是每次重启系统后都需要手动启动 LibreTranslate 和 OpenResty,这显然是不太方便的。我们可以将其注册为系统服务,这样就可以实现静默开机自启动了。这里仅以 Windows 系统为例,其他系统可能需要自行查找对应的方法了,也欢迎小伙伴们补充分享其他系统的方法给大家。
1. 设置系统变量(重要)
打开终端管理员从以下选择对应的命令执行以配置
SNAP
和SNAP_USER_DATA
两个系统环境变量 (必须在终端管理员上执行,否则将会执行失败):2. 安装 WinSW
从 WinSW Releases 上下载 WinSW 可执行文件并将其重命名为
winsw.exe
,后面将通过它来创建系统服务。3. 创建 LibreTranslate 系统服务
下载配置文件:libretranslate.zip
解压缩得到
libretranslate.xml
文件,将其放到一个固定的目录内,执行命令创建系统服务(建议到xml
文件所在的目录下执行命令以避免出现不可意料的问题,创建服务后不可移动、删除或者重命名此文件):此时你可以在任务管理器的服务标签卡内找到名为
LibreTranslate
的系统服务,并能管理其状态,如开始、停止、重新启动等。也可能通过 WinSW 进行管理,如启动服务:
删除服务:
4. 创建 OpenResty 系统服务
下载配置文件:openresty.zip
解压缩得到
openresty.xml
文件,将其放到你的 OpenResty 安装目录内,执行命令创建并启动系统服务(建议到xml
文件所在的目录下执行命令以避免出现不可意料的问题,创建服务后不可移动、删除或者重命名此文件):此时你可以在任务管理器的服务标签卡内找到名为
Openresty
的系统服务,并能管理其状态。至此,所有安装与配置均已完成,祝你使用愉快!
Beta Was this translation helpful? Give feedback.
All reactions