Skip to content

Commit

Permalink
feat!: refactor service provider configuration
Browse files Browse the repository at this point in the history
BREAKING CHANGES:
- Remove `deploymentName` and `apiVersion` options
- Add `serviceProvider` option to support different service providers
- Change API URL format requirements for different providers
- Improve configuration validation for each provider

Documentation:
- Update configuration manuals with new options and examples
- Add links to service provider documentation
- Improve formatting and readability
  • Loading branch information
liby committed Dec 4, 2024
1 parent 6279e6c commit 2875f8f
Show file tree
Hide file tree
Showing 7 changed files with 329 additions and 189 deletions.
41 changes: 27 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,47 +24,60 @@
>
> 重要更新:非 macOS 用户可以使用我开发的基于 OpenAI API 的划词翻译浏览器插件 [openai-translator](https://github.com/yetone/openai-translator) 以解燃眉之急。
## 演示

![](https://user-images.githubusercontent.com/1206493/221086195-f1ed941d-4dfa-4aa0-9d47-56c258a8f854.gif)

## 简介

ChatGPT 向我们展示了 GPT 模型的伟大之处,所以我使用 OpenAI 的 API 实现了这个 Bob 的翻译 + 润色 + 语法修改插件,效果拔群!

### 润色功能
<details>

此插件已支持使用 OpenAI API 对句子进行润色和语法修改,只需要把目标语言设置为与源语言一样即可,全面替代 Grammarly!而且理论上任何语言都可以润色,不仅仅是英语。
<summary>演示 👀</summary>

如果你不喜欢将翻译功能和文本润色功能放在一起,这里单独拆分出了一个专门用来文本润色和语法纠错的插件: [bob-plugin-openai-polisher](https://github.com/yetone/bob-plugin-openai-polisher),这个润色插件具有更高级的润色功能,比如解释修改原因等。
![演示](https://user-images.githubusercontent.com/1206493/221086195-f1ed941d-4dfa-4aa0-9d47-56c258a8f854.gif)

### 语言模型
</details>

要使用 ChatGPT 的 API 需要在 Bob 的设置页面把此插件的模型改为 `gpt-3.5-turbo-0301` 或者 `gpt-3.5-turbo`:

![how to use OpenAI API](https://user-images.githubusercontent.com/1206493/222339607-d8f05042-4b65-495c-af58-849891de7434.png)
### 润色功能

此插件已支持使用 OpenAI API 对句子进行润色和语法修改,只需要把目标语言设置为与源语言一样即可,全面替代 Grammarly!而且理论上任何语言都可以润色,不仅仅是英语。

如果你不喜欢将翻译功能和文本润色功能放在一起,这里单独拆分出了一个专门用来文本润色和语法纠错的插件: [bob-plugin-openai-polisher](https://github.com/openai-translator/bob-plugin-openai-polisher),这个润色插件具有更高级的润色功能,比如解释修改原因等。

## 使用方法

1. 安装 [Bob](https://bobtranslate.com/guide/#%E5%AE%89%E8%A3%85) (版本 >= 0.50),一款 macOS 平台的翻译和 OCR 软件

2. 下载此插件: [openai-translator.bobplugin](https://github.com/openai-translator/bob-plugin-openai-translator/releases/latest)

3. 安装此插件:
3. <details>

<summary>安装此插件 👀</summary>

![安装步骤](https://user-images.githubusercontent.com/1206493/219937302-6be8d362-1520-4906-b8d6-284d01012837.gif)

</details>

4.[OpenAI](https://platform.openai.com/account/api-keys) 获取你的 API KEY

5. 把 API KEY 填入 Bob 偏好设置 > 服务 > 此插件配置界面的 API KEY 的输入框中
- 如果你想了解关于其他设置的更多信息,请查看[配置手册](./docs/configuration_manual_CN.md)

![设置步骤](https://user-images.githubusercontent.com/1206493/219937398-8e5bb8d2-7dc8-404a-96e7-a937e08c939f.gif)
<details>

<summary>演示 👀</summary>

![设置步骤](https://user-images.githubusercontent.com/1206493/219937398-8e5bb8d2-7dc8-404a-96e7-a937e08c939f.gif)

</details>


6. <details>

6. 安装 [PopClip](https://bobtranslate.com/guide/integration/popclip.html) 实现划词后鼠标附近出现悬浮图标
<summary>安装 PopClip 实现划词后鼠标附近出现悬浮图标 👀</summary>

![PopClip](https://user-images.githubusercontent.com/1206493/219933584-d0c2b6cf-8fa0-40a6-858f-8f4bf05f38ef.gif)
[![PopClip](https://user-images.githubusercontent.com/1206493/219933584-d0c2b6cf-8fa0-40a6-858f-8f4bf05f38ef.gif)](https://bobtranslate.com/guide/integration/popclip.html)

</details>

## 贡献

Expand Down
40 changes: 25 additions & 15 deletions docs/README_EN.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,49 +24,59 @@
>
> Important update: Non-macOS users can use my browser extension based on OpenAI API for word translation [openai-translator](https://github.com/yetone/openai-translator) to solve urgent needs.
## Introduction

## Demonstration
ChatGPT showcases the greatness of GPT models, so I have implemented the Bob translation + polishing + grammar modification plugin using OpenAI's API, with outstanding results!

![demo](https://user-images.githubusercontent.com/1206493/221086195-f1ed941d-4dfa-4aa0-9d47-56c258a8f854.gif)
<details>

"""
## Introduction
<summary>Demonstration 👀</summary>

ChatGPT showcases the greatness of GPT models, so I have implemented the Bob translation + polishing + grammar modification plugin using OpenAI's API, with outstanding results!
![demo](https://user-images.githubusercontent.com/1206493/219937398-8e5bb8d2-7dc8-404a-96e7-a937e08c939f.gif)

</details>

### Polishing Feature

This plugin supports polishing sentences and modifying grammar using the OpenAI API. To do so, just set the target language to be the same as the source language. It's a comprehensive alternative to Grammarly! And in theory, any language can be polished, not just English.

If you don't like combining translation functionality and text polishing, a separate plugin specifically for text polishing and grammar correction is available: [bob-plugin-openai-polisher](https://github.com/yetone/bob-plugin-openai-polisher). This polishing plugin has more advanced polishing features, such as explaining the modification reasons, etc.

### Language Model

To use the OpenAI API, go to Bob's settings page and change the plugin model to `gpt-3.5-turbo-0301` or `gpt-3.5-turbo`:

![how to use OpenAI API](https://user-images.githubusercontent.com/1206493/222339607-d8f05042-4b65-495c-af58-849891de7434.png)

## Usage

1. Install [Bob](https://bobtranslate.com/guide/#%E5%AE%89%E8%A3%85) (version >= 0.50), a macOS translation and OCR software

2. Download this plugin: [openai-translator.bobplugin](https://github.com/openai-translator/bob-plugin-openai-translator/releases/latest)

3. Install this plugin:
3. <details>

![Installation Steps](https://user-images.githubusercontent.com/1206493/219937302-6be8d362-1520-4906-b8d6-284d01012837.gif)
<summary>Install this plugin 👀</summary>

![Installation Steps](https://user-images.githubusercontent.com/1206493/219937302-6be8d362-1520-4906-b8d6-284d01012837.gif)

</details>

4. Get your API KEY from [OpenAI](https://platform.openai.com/account/api-keys)

5. Enter the API KEY in Bob Preferences > Services > This plugin configuration interface's API KEY input box:
- If you would like to learn more about other settings, please refer to the [Configuration Manual](./docs/configuration_manual_EN.md)

<details>

<summary>Settings Steps 👀</summary>

![Settings Steps](https://user-images.githubusercontent.com/1206493/219937398-8e5bb8d2-7dc8-404a-96e7-a937e08c939f.gif)

</details>

6. <details>

<summary>Install PopClip for highlighted text mouse proximity floating icon 👀</summary>

[![PopClip](https://user-images.githubusercontent.com/1206493/219933584-d0c2b6cf-8fa0-40a6-858f-8f4bf05f38ef.gif)](https://bobtranslate.com/guide/integration/popclip.html)

6. Install [PopClip](https://bobtranslate.com/guide/integration/popclip.html) for highlighted text mouse proximity floating icon:
</details>

![PopClip](https://user-images.githubusercontent.com/1206493/219933584-d0c2b6cf-8fa0-40a6-858f-8f4bf05f38ef.gif)

## Contributing

Expand Down
96 changes: 69 additions & 27 deletions docs/configuration_manual_CN.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,122 @@
## 配置手册

### 服务名称
### 服务提供商

- 可选项
- 默认值: OpenAl Translator
- 必选项

### API URL
- 默认值: OpenAI

- 可选项
- 默认值: `https://api.openai.com`
- 说明
- 自定义 API URL 可以解决服务不稳定以及 IP 被封禁的问题,切换到反向代理服务来提高稳定性,并保护我们的 IP 地址不被 OpenAI 封禁
- 或者是使用一些云服务商提供的 API 网关服务,比如 Cloudflare AI Gateway,除了可以代理 OpenAI 的 API 请求外,还额外增加了缓存、调用分析以及日志管理等功能
- 将 API URL 设置为 `https://gateway.ai.cloudflare.com/v1/${ACCOUNT_TAG}/${GATEWAY}/openai` 即可体验
- 更多信息请参阅 [Cloudflare AI Gateway 官方文档](https://developers.cloudflare.com/ai-gateway/)

### Dep. Name
- OpenAI: 使用 OpenAI 官方服务

- 可选项
- 默认值: 无
- 说明
- 当使用 Azure OpenAI Service 服务时,需要填写此项,具体步骤可参阅 [Azure OpenAI 翻译设置](https://bobtranslate.com/service/translate/azureopenai.html)
- [🔗 Azure OpenAI Service 官方文档](https://learn.microsoft.com/zh-cn/azure/cognitive-services/openai/chatgpt-quickstart?tabs=command-line&pivots=rest-api)
- Azure OpenAI: 使用 [Azure OpenAI Service](https://learn.microsoft.com/zh-cn/azure/ai-services/Translator/quickstart-text-rest-api)

### API Version
- Custom: 使用自定义服务,如 [Cloudflare AI Gateway](https://developers.cloudflare.com/ai-gateway/) 或者 [Ollama](https://ollama.com/blog/openai-compatibility) 等服务商


### API URL

- 可选项(OpenAI)/ 必填项(Azure OpenAI 和 Custom)

- 可选项
- 默认值: 无

- 说明
- 当使用 Azure OpenAI Service 服务时,需要填写此项,具体步骤可参阅 [Azure OpenAI 翻译设置](https://bobtranslate.com/service/translate/azureopenai.html)
- [🔗 Azure OpenAI Service 官方文档](https://learn.microsoft.com/zh-cn/azure/cognitive-services/openai/chatgpt-quickstart?tabs=command-line&pivots=rest-api)

- OpenAI: 可选,默认为: `https://api.openai.com`

- Azure OpenAI: 必填,完整的 API URL,格式为:

```
https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=API_VERSION
```
- Custom: 必填,值为完整的 API URL,例如使用 Cloudflare AI Gateway 时,需填入:
```
https://gateway.ai.cloudflare.com/v1/${CLOUDFLARE_ACCOUNT_ID}/${GATEWAY_ID}/openai/chat/completions
```
### API KEY
- 必填项
- 默认值: 无
- 说明
- 可使用英文逗号分割多个账号下不同的 API KEY 以实现额度加倍及负载均衡
### 模型
- 必选项
- 默认值: `gpt-3.5-turbo-1106`
- 默认值: `gpt-3.5-turbo`
- 说明
- 选择 `custom` 时,需要设置 `自定义模型` 配置项
### 自定义模型
- 可选项
- 默认值: `gpt-3.5-turbo`
- 说明
- 联动项,当 `模型` 配置选择 `custom` 时,会读取此配置项设置的模型
### 系统指令
- 可选项
- 默认值: `You are a translation engine that can only translate text and cannot interpret it.`
- 说明
- 自定义 System Prompt,填写则会覆盖默认的 System Prompt
- 自定义 Prompt可使用以下变量:
1. `$text`:需要翻译的文本,即翻译窗口输入框内的文本
2. `$sourceLang`:-原文语言, 即翻译窗口输入框内文本的语言,比如「简体中文」
3. `$targetLang`:目标语言,即需要翻译成的语言,可以在翻译窗口中手动选择或自动检测,比如「English」
1. `$text`:需要翻译的文本,即翻译窗口输入框内的文本
2. `$sourceLang`:原文语言,即翻译窗口输入框内文本的语言,比如「简体中文」
3. `$targetLang`:目标语言,即需要翻译成的语言,可以在翻译窗口中手动选择或自动检测,比如「English」
### 用户指令
- 可选项
- 默认值: `translate from $sourceLang to $targetLang:/n/n $text`
- 默认值: `translate from $sourceLang to $targetLang:\n\n$text`
- 说明
- 自定义 User Prompt,填写则会覆盖默认的 User Prompt
- 可以使用与系统指令中相同的变量
### 流式输出
- 可选项
- 默认值: `Enable`
- 说明
- 启用后翻译结果会实时显示
- 禁用后会等待翻译完成后一次性显示
### 温度
- 可选项
- 默认值: `0.2`
- 说明
- 温度值越高,生成的文本越随机,更有创意。
- 翻译任务建议设置在 `0.2` 左右,润色任务可以适当调高,如果需要严谨性,可以设置为 `0`
- 温度值越高,生成的文本越随机,更有创意
- 翻译任务建议设置在 `0.2` 左右,润色任务可以适当调高,如果需要严谨性,可以设置为 `0`
Loading

0 comments on commit 2875f8f

Please sign in to comment.