原创

本地部署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' -%}
{{ '<start_of_turn>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 -%}
{{ '<end_of_turn>\n' }}

  {%- elif message['role'] == 'assistant' -%}
{{ '<start_of_turn>model\n' }}
    {%- if message['content'] is string -%}
{{ message['content'] | trim }}
    {%- endif -%}
{{ '<end_of_turn>\n' }}
  {%- endif -%}
{%- endfor -%}

{%- if add_generation_prompt -%}
{{ '<start_of_turn>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


正文到此结束
本文目录