本地部署TranslateGemma实现浏览器离线翻译
最近使用沉浸式翻译的时候,老是弹框提示需要登录才能使用,不登录就不给用了。

以往我们遇到这种情况就只能是忍气吞声,老老实实的去注册登录了。
但是现在AI这么强大,我们能不能让AI帮我们写一个翻译插件呢?今天我们就通过本地部署TranslateGemma翻译模型,AI编写浏览器插件,来实现浏览器离线翻译功能。
一、LM Studio本地部署TranslateGemma模型
为了方便使用,我们通过LM Studio工具来进行本地模型的部署。
1.下载安装LM Studio
LM Studio官网下载地址:https://lmstudio.ai/download
我们打开LM Studio官方下载地址,点击Download LM Studio for Windows下载LM Studio:

下载完成后文件名为LM-Studio-0.4.21-2-x64.exe,直接双击安装:

安装位置选择D盘:

2.下载TranslateGemma模型
安装完成后,可以进入LM Studio设置界面,将语言调整成中文:

点击左侧Model Search按钮进入模型列表页面:

搜索TranslateGemma模型进行下载:

这里我们选择4B的模型就可以了,这个translategemma-4b-it-GGUF是量化后的模型名称。
3.加载模型
下载完成后点击Load Model加载模型:

模型没有加载成功,提示加载模型失败:

我们查看一下LM Studio日志,日志中说提供的聊天模板不受支持:

找AI问了一下,translategemma模型需要特定的提示词模板,网上找了大佬分享的模板,内容如下:
{{ bos_token }}
{%- set ns = namespace(system_text='') -%}
{%- for message in messages -%}
{%- if message['role'] == 'system' -%}
{%- if message['content'] is string -%}
{%- set ns.system_text = ns.system_text + (message['content'] | trim) + '\n\n' -%}
{%- endif -%}
{%- elif message['role'] == 'user' -%}
{{ 'user\n' }}
{%- if ns.system_text -%}
{{ ns.system_text }}
{%- set ns.system_text = '' -%}
{%- endif -%}
{%- if message['content'] is string -%}
{{ message['content'] | trim }}
{%- elif message['content'] is iterable -%}
{%- for item in message['content'] -%}
{%- if item['type'] == 'text' -%}
{{ item['text'] | trim }}
{%- endif -%}
{%- endfor -%}
{%- endif -%}
{{ '\n' }}
{%- elif message['role'] == 'assistant' -%}
{{ 'model\n' }}
{%- if message['content'] is string -%}
{{ message['content'] | trim }}
{%- endif -%}
{{ '\n' }}
{%- endif -%}
{%- endfor -%}
{%- if add_generation_prompt -%}
{{ 'model\n' }}
{%- endif -%} 将translategemma模型默认的模板内容替换成该模板即可成功加载。
替换路径点击My Models->选择translategemma-4b-it模型->点击设置按钮->Load->Chat Template:

最后点击加载模型就可以成功加载了:

4.启动本地API服务
点击LM Studio界面左侧的Developer按钮,在Server Settings设置中启用CORS跨域功能:

点击Start Server开关打开API服务:

打开完成后状态如下:

可以获得下面参数:
本地API服务地址:
http://127.0.0.1:1234/v1/chat/completions 模型名称:
translategemma-4b-it 5.测试本地API服务
我们可以通过curl命令测试API是否正常提供服务,打开命令行窗口,输入下面命令测试获取模型列表:
curl http://127.0.0.1:1234/v1/models 
成功输出模型列表说明LM Studio的本地API服务已经正常运行了。
二、浏览器翻译插件制作
1.编写浏览器插件
因为混元模型还在免费期间,所以我们还是使用WorkBuddy来编写浏览器翻译插件:

2.加载浏览器翻译插件
浏览器翻译插件开发完成后,WorkBuddy给出了使用方法:

我们根据提示,在浏览器地址栏输入下面地址打开浏览器扩展插件页面:
chrome://extensions 或者点击浏览器右侧三个点展开主菜单,然后选择【扩展程序】->【管理扩展程序】,进入浏览器扩展插件页面:

点击右侧按钮打开开发者模式后,通过加载未打包的扩展程序功能来加载翻译插件:

加载成功后会在所有扩展程序中显示翻译插件:

3.启用翻译插件
加载完成后点击插件右侧开关启用翻译插件:

启用后浏览器右上角就出现扩展程序图标,点击后显示启用的所有插件,点击翻译插件后的图钉按钮,将插件固定在工具栏:

4.配置API模型接口
点击插件图标,会弹出配置页面,点击配置翻译引擎进行本地翻译模型配置:

我们将LM Studio提供的本地API参数填进去:

5.测试翻译效果
填写本地API参数后,我们点击测试链接验证:

提示测试成功了,但是译文是空的,这不正常,我们看LM Studio的日志提示:

我们看到请求的接口不太对,交给WorkBuddy让它继续修改就好了:

经过几轮修改后,重新加载插件后测试成功翻译:

来翻译一个真实的英文网页:

已经可以成功翻译了,不过速度还是有点慢哈哈。
三、其他翻译API支持
1.在线大模型(Open AI兼容)
兼容Open AI接口的大模型都可以使用,实测官方deepseek-v4-flash模型翻译可用。
2.百度翻译
百度翻译每月有100万字符免费额度,需要完成实名认证,没认证只有5万字符免费额度。
百度翻译开放平台:https://api.fanyi.baidu.com/
3.腾讯机器翻译TMT
腾讯机器翻译每月有500万字符免费额度,需要授权子账号QcloudTMTFullAccess权限。
腾讯机器翻译TMT:https://cloud.tencent.com/product/tmt
插件源码放到gitee上了,感兴趣的朋友可以尝试一下。
插件源码地址:https://gitee.com/bit99999/eyyyye/tree/master/translation-extension
扩展说明:
1.translategemma模型开源地址:https://huggingface.co/collections/google/translategemma
- 本文标签: Other
- 本文链接: https://blog.eyyyye.com/article/160
- 版权声明: 本文由爱做梦的比特原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
