Skip to content

MagicShiba/omegat-plugin-openai-api-translate

Repository files navigation

适用于 OmegaT 的 OpenAI Api 插件

该插件使用户能够在 OmegaT 中,使用任何提供OpenAI API的LLM软件进行机器翻译。

alt text 该插件基于 OpenAI Plug-in for OmegaT, 但允许自定义api url地址,这使得插件不再局限于open ai,可以使用任何兼容openai api的LLM。

特点

  • 使用 OpenAI API 翻译 OmegaT 中的文本。
    • 你可以自定义为任何模型,无论本地还是在线。
  • 自动将术语表合并到提示中,以提高翻译的一致性和准确性。
  • 通过设置 UI 轻松将自定义指令添加到翻译提示中,从而实现更大的灵活性和对翻译输出的控制。

如何使用

1. 安装插件

插件放置位置:OmegaT安装目录下的 plugins

完整路径参考:OmegaT5\plugins\openai-translate\OmegaT-hxyy-llm-plugin-0.0.1.jar

2. 通过 OmegaT UI 配置 API 密钥和设置

  1. 打开 首选项 > 机器翻译 > Custom LLM Translate.

  2. 配置插件

    本地例子: 使用 LM Studio时,api key随意填写。

    从LMS复制api url。

    模型你可以从LMS中复制名称,也可以随意填写,随意填写即使用当前加载模型。

    alt text alt text

    在线例子:

    以open router为例。 与前面类似,需要填写key,url,模型名称。这些从供应商那里获取。

    alt text

    提示词示例

    请将用户提供的文本从 %s 翻译为 %s 。
    你是集成在翻译程序中的翻译工具,你在进行程序文档翻译,你只需要输出译文,不要输出原文,你需要保持输出翻译准确而流畅。
    注意:
    不要将英文括号"()"翻译为中文括号"()";
    不要将英文中的引号 " 翻译为中文引号 “” ;
    不要翻译布尔值。
    你需要保持原文格式,保留文本中的标记如:"{0}" "\n",不要添加任何额外的markdown格式。
    如果下面给出了术语表(Glossary)则优先按术语表输出翻译,不要输出术语表和解释。

注意事项

  • 使用术语表(词条)保持上下文一致性,术语表(glossary)拼接在系统提示后面,在附加提示前面。如果有术语表的话,你最好告诉ai存在术语表,避免误解。

  • 附加提示和"系统提示""用户提示"不是必要的,但加上有助于一些模型正确区分信息提高成功率。

    alt text (术语表一致性演示,这个图比较旧,术语表拼接位置与现在不一致,我懒得重新录制)

  • 你可以在提示中添加一些例子,有例子ai会做的更好。

  • AI并不总是能够返回正确翻译,有时会有奇怪输出或者犯傻,适当提高温度以提高随机性,重新翻译可能会解决问题。温度为0没有随机性,则重试无效。

  • 提示中第一个 %s 为原始语言代码如"en-US",第二个为目标语言代码如"zh-CN",这随项目设置将自动变化,不是必须的,你也可以在提示词中指定如"翻译为简体中文"。

附加辅助工具

OmegaT设计理念上不支持自动机翻全部,而且AI对其所知不多,文档也有坑,java插件编写需要编译也麻烦...所以有个粗糙的辅助脚本,运行后将创建插入文本UI,有助于减少按键盘。

跳转并插入是延迟一秒插入,因为我获取不到翻译状态。如果翻译时间太长,需要手动改脚本中的延迟时间。

alt text

alt text

编译java插件

需要配置java 8环境。

运行 gradlew.bat 将自动下载所需依赖并编译,不需要额外参数。

如果你需要升级更高的基础构建版本,可以参考其它插件中的版本,可能需要更高的java版本和更复杂的构建脚本。

脚本可能是全能的,编写jar插件不如写脚本。

About

在OmegaT中使用自定义LLM模型进行翻译,使用openai api。

Resources

Stars

Watchers

Forks

Packages

No packages published