Sign inSign up

mzzsfy/openai2deeplx

By mzzsfy

•Updated about 2 months ago

将 OpenAI 聊天接口转换为 DeepLX 翻译的轻量代理服务。

Image
0

1.1K

mzzsfy/openai2deeplx repository overview

⁠openai2deeplx

将 OpenAI 聊天接口转换为 DeepLX 翻译的轻量代理服务。

沉浸式翻译等工具可将其作为 OpenAI 兼容的后端,实际翻译由 DeepLX 完成,免费且快速。

⁠功能

  • 兼容 OpenAI /v1/chat/completions 接口
  • 支持流式(SSE)和非流式两种响应模式
  • 翻译前支持正则删除指定文本
  • model 字段自动提取目标语言(如 gpt-4-zh -> ZH)
  • 支持 Token 鉴权,可配置访问令牌
  • DeepLX Token 可独立配置或透传用户 Token
  • 纯环境变量配置,无磁盘依赖

⁠快速开始

⁠二进制运行
# 先启动 DeepLX (默认监听 :1188)
# https://github.com/OwO-Network/DeepLX

DEEPLX_API_URL=http://localhost:1188/translate \
go run .
⁠Docker
docker run -d \
  -p 8080:8080 \
  -e DEEPLX_API_URL=http://host.docker.internal:1188/translate \
  mzzsfy/openai2deeplx

⁠环境变量

变量名默认值说明
DEEPLX_API_URLhttp://localhost:1188/translateDeepLX 翻译接口地址
DEEPLX_TOKEN(空)DeepLX 认证 Token,设置后优先使用;未设置则透传用户请求中的 Token
TOKENS(空)访问鉴权 Token,逗号分隔;不设置则允许匿名访问
DEFAULT_TARGET_LANGZH默认目标语言
DEFAULT_SOURCE_LANGauto默认源语言(自动检测)
PORT8080监听端口
REMOVE_PATTERNS(空)正则删除规则,多个用 ### 分隔
⁠目标语言

从请求的 model 字段中按 - 分割,逐段匹配 DeepLX 支持的语言代码,取第一个匹配项。无匹配则使用 DEFAULT_TARGET_LANG。

支持的语言代码:BG CS DA DE EL EN ES ET FI FR HU ID IT JA KO LT LV NL NO PL PT RO RU SK SL SV TR UK ZH

示例:

model目标语言
gpt-4-zhZH
gpt-4-enEN
gpt-4-jaJA
gpt-4ZH(默认)
⁠Token 配置

两个独立的 Token 维度:

访问鉴权 (TOKENS):控制谁能调用本服务。逗号分隔多个有效 Token。不设置则允许匿名访问。

TOKENS=my-secret-key,another-key

客户端通过 Authorization: Bearer <token> 或 Authorization: <token> 传递。

DeepLX 认证 (DEEPLX_TOKEN):本服务调用 DeepLX 时的认证 Token。优先级:

  1. 设置了 DEEPLX_TOKEN → 使用它
  2. 未设置 → 透传用户请求中的 Token
# 方式一:固定 DeepLX Token
DEEPLX_TOKEN=deeplx-secret

# 方式二:不设置,透传用户 Token(适合多用户场景,每个用户的 Token 直接传给 DeepLX)
⁠删除规则

REMOVE_PATTERNS 支持多个正则,用 ### 分隔。翻译前逐条执行 ReplaceAllString 替换为空。

# 删除 [xxx] 格式的标记和所有数字
REMOVE_PATTERNS='\[.*?\]###\d+'

⁠使用示例

⁠非流式
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4-zh",
    "messages": [{"role": "user", "content": "Hello, world!"}],
    "stream": false
  }'
⁠流式
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4-zh",
    "messages": [{"role": "user", "content": "Hello, world!"}],
    "stream": true
  }'
⁠沉浸式翻译配置

在沉浸式翻译的 OpenAI 兼容接口中填写:

  • API 地址:http://your-host:8080/v1/chat/completions
  • 模型:gpt-4-zh(或其他目标语言后缀)
  • API Key:任意值

Tag summary

Content type

Image

Digest

sha256:7cf5f9f92…

Size

6.5 MB

Last updated

about 2 months ago

docker pull mzzsfy/openai2deeplx