noTranslateModel 无翻译模型

无翻译模型进行文本翻译的模式

使用场景

在非常低配的硬件上,比如1核1G 的低配硬件场景,部署了 translate.service 后,没有再多余的算力资源去部署文本翻译模型,这时就直接忽略文本翻译模型不再部署了,而是单纯只是部署 translate.service 给 translate.js 提供翻译接口支持。

但是因为没有部署文本翻译模型,所以只有命中 translate.service 缓存的才能正常响应翻译结果,而没有命中缓存的,按照正常形态,这部分没命中缓存的文本将有 文本翻译模型 来提供翻译,但是我们这里没有部署文本翻译模型,所以这里会直接返回一个空白的字符串。
也就是凡是没命中缓存的,都会返回一个空白的字符串作为译文进行显示。

这时前端访问者(更多情况应该是内部测试的工程师)所看到的可能是这种情况:
hello 翻译为中文时,这成了一个空白,没有任何文本了。
此时需要登录管理后台,通过译文管理,手动修改 译文是空白的, 将原文翻译之后的结果,人工填写到译文中去,完成翻译。也就是这个翻译过程是人工的。

使用方式

私有部署的 config.properties 配置文件中,翻译通道配置使用无翻译模型的通道:

  1. translate.service.noTranslateModel.use=true

注意

使用它后,要把之前使用的翻译通道注释掉,比如 giteeAI、openai、LibreTranslate、ollama …… 等等各种通道,切记要注释掉。

使用示例

这个使用实例是针对上面 使用场景 的需求来进行的。

第一步:设置翻译通道

根据上面的配置,配置 config.properties ,并重启翻译服务 (运行命令脚本 /mnt/service/start.sh )

第二步:确认已开启内存缓存

config.properties 配置中确认已经设置启用内存缓存:

  1. cache.memory.use=true

第三步:确认 domain.json 中已配置域名

比如,你使用 translate.js 进行多语言切换的网站的页面URL是 http://admin.abc.com:8080/index.html ,那么你需要将 admin.abc.com 配置到 domain.json 中去,并给他设置一下内存使用大小。
方便点来,你可以设置它的文件缓存跟内存缓存都设置成100亿。
具体有关 domain.json 配置的详细说明点此查阅

第四步:访问你的网页测试

访问步骤三中你接入了 translate.js 的网页,然后手动清空浏览器缓存,清除方式,通过 右键-审核元素的方式进行, 参考下图:

清空之后,重新访问这个网页,然后点击切换语种进行翻译,会发现,原本是正常有内容的,翻译之后,内容没了,比如原本的未翻译之前的页面是:

当点击了切换语言之后,切换为韩语,它成了这样了:

这是正常的,因为没有接入翻译模型提供文本翻译能力,而是采用的translate.service.noTranslateModel.use=true 无翻译模型通道(没有任何翻译模型参与),所以所有的文本翻译任务,他们的译文都赋予了空字符串。
原本中文的内容,翻译为韩语之后,成了空字符串,也就成了上图中看到的效果,原本中文文字的部分,翻译为韩语后,都成了空白了。
接下来,就需要人工去对修改这些翻译结果,赋予正确的翻译结果。

第五步:人为方式设置翻译结果

进入 translate.service 私有部署完成后自带的管理后台,如下图所示

可以看到韩语对应的译文结果这里它都是空的,没有任何翻译结果的,这也是上面第四步中,触发网页进行翻译后,系统自动将原文跟译文(自动赋予的空白字符串) 进行了记录,可以通过这个管理后台进行查看。
随便找到其中某一个原文的译文,点击修改它的译文:

修改之后保存。 保存的译文,其实是存到了 redis 的缓存中,也就是存到了安装 translate.service 服务器中的 /mnt/redis/datafile/

第六步:查看修改后的结果进行验证

重复执行第四步中的清空浏览器缓存,然后再访问这个页面,点击翻译为韩语,此时就可以看到,刚才第五步中通过控制台人工修改的译文,已经生效了

扩展:同一个系统,复制到多台机器部署

按照上述方式操作,对所有译文都人为设置之后,系统此时已经可以正常切换语种使用了。
比如 机器是某个设备的自带的一体机, 那么如果同样的系统要复制到其他设备的一体机系统中去,也或者可以这么说,需要将原文、译文 的设置复制到其他设备系统中去,这时只需要复制这几个目录即可:

  1. /mnt/redis/datafile/
  2. /mnt/service/data/

注意