我平常主要使用 insert-translated-name 这个插件来快速起英文名或者写英文注释。
后端的翻译程序一直是通过 crow-translate 来调用在线翻译网站来翻译内容(比如 google, bing, youdao 等), 这种实现方式的优势是翻译结果很好, 但是网络差一点或者没有网络的时候就没法使用了。
最近在研究 AI 大模型, 早上花了 5 分钟写了一个 补丁, 现在 insert-translated-name 可以使用本地大模型来执行翻译中文到英文的任务啦。
使用方法
- 更新 insert-translated-name 到最新版本
- 安装 ollama: linux 平台只需要一条命令自动安装,
curl https://ollama.ai/install.sh | sh
, 其他平台安装方式请参考 ollama 官网说明 - 下载 zephyr 大模型:
ollama run zephyr
这条命令会自动下载zephyr
这个模型文件, 下载好了可以在终端测试一下 - 设置翻译程序后端:
(setq insert-translated-name-program "ollama")
- 默认的模型使用的是 zephyr, 你也可以通过设置
insert-translated-name-ollama-model-name
选项来更换为其他模型
设置好以后就可以调用 insert-translated-name-insert
命令来测试了, 我测试了一下, 第一次稍微慢一点(应该是在加载模型文件到内存), 后面的翻译都是秒回了, 非常方便。
crow 和 大模型的优劣势分析
- crow 优点: 翻译结果更自然一点
- crow 缺点: 网络差返回翻译结果有点慢, 没网没法用
- ollama 优点: 本地翻译, 返回速度很快, 不用写代码起名字的时候过多等待
- ollama 缺点: 大模型对内存和 GPU 要求比较高
备注
如果执行命令 ollama run model 的时候出现 invalid version
错误, 请执行 curl https://ollama.ai/install.sh | sh
命令升级 ollama 即可解决。