noTranslateModel 无翻译模型
无翻译模型进行文本翻译的模式
使用场景
在非常低配的硬件上,比如1核1G 的低配硬件场景,部署了 translate.service 后,没有再多余的算力资源去部署文本翻译模型,这时就直接忽略文本翻译模型不再部署了,而是单纯只是部署 translate.service 给 translate.js 提供翻译接口支持。
但是因为没有部署文本翻译模型,所以只有命中 translate.service 缓存的才能正常响应翻译结果,而没有命中缓存的,按照正常形态,这部分没命中缓存的文本将有 文本翻译模型 来提供翻译,但是我们这里没有部署文本翻译模型,所以这里会直接返回一个空白的字符串。
也就是凡是没命中缓存的,都会返回一个空白的字符串作为译文进行显示。
这时前端访问者(更多情况应该是内部测试的工程师)所看到的可能是这种情况:
hello 翻译为中文时,这成了一个空白,没有任何文本了。
此时需要登录管理后台,通过译文管理,手动修改 译文是空白的, 将原文翻译之后的结果,人工填写到译文中去,完成翻译。也就是这个翻译过程是人工的。
使用方式
私有部署的 config.properties 配置文件中,翻译通道配置使用无翻译模型的通道:
translate.service.noTranslateModel.use=true
注意
使用它后,要把之前使用的翻译通道注释掉,比如 giteeAI、openai、LibreTranslate、ollama …… 等等各种通道,切记要注释掉。
使用示例
这个使用实例是针对上面 使用场景 的需求来进行的。
第一步:设置翻译通道
根据上面的配置,配置 config.properties ,并重启翻译服务 (运行命令脚本 /mnt/service/start.sh )
第二步:确认已开启内存缓存
config.properties 配置中确认已经设置启用内存缓存:
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/
第六步:查看修改后的结果进行验证
重复执行第四步中的清空浏览器缓存,然后再访问这个页面,点击翻译为韩语,此时就可以看到,刚才第五步中通过控制台人工修改的译文,已经生效了
扩展:同一个系统,复制到多台机器部署
按照上述方式操作,对所有译文都人为设置之后,系统此时已经可以正常切换语种使用了。
比如 机器是某个设备的自带的一体机, 那么如果同样的系统要复制到其他设备的一体机系统中去,也或者可以这么说,需要将原文、译文 的设置复制到其他设备系统中去,这时只需要复制这几个目录即可:
/mnt/redis/datafile//mnt/service/data/
注意
- 要保证访问域名是一致的,因为这个 原文-译文 的设置是跟域名关联的,也就是 上面 第三步 中配置的域名。
- 如果你要做这种转移,其实你可以先用个云服务器,在有网络环境下,正常接入大模型来提供翻译,翻译完成后,人工方式检查一下翻译结果,没有问题之后,直接把上面两个目录转移就可以了,没必要人为的方式逐个人工去进行翻译并进行设置,这样太累了。