DeepLX 是一个部署在 Cloudflare Workers 上的无服务器(Serverless)应用,它为用户提供了免费且高性能的 DeepL 和谷歌翻译服务接口。这个项目通过智能代理路由、先进的速率限制算法和熔断机制,有效解决了在使用传统翻译API时常见的HTTP 429(请求过多)错误。相较于官方API,DeepLX 提供了更高的请求速率限制和更低的网络延迟。由于它完全免费,无需API密钥或许可费用,用户只需一次部署,即可无限制地使用翻译功能。该项目还具备高稳定性和多种安全特性,旨在为开发者和普通用户提供一个可靠的、低成本的翻译解决方案。
参考项目:https://github.com/OwO-Network/DeepLX
Funktionsliste
- Unterstützung mehrerer Übersetzungsdienste: 同时支持 DeepL (
/deepl
) 和 谷歌翻译 (/google
) 两种主流翻译引擎。 - hohe Leistung: 基于 Cloudflare Workers 的全球边缘网络部署,实现低延迟和零冷启动,响应迅速。
- 高请求额度: 通过智能负载均衡和多个代理端点,支持比官方API更高的并发请求。
- hohe Stabilität: 具备熔断机制和指数退避重试策略,能自动检测并切换失效的代理端点,几乎完全避免
429
错误,确保服务连续性。 - Intelligenter Cache: 内置内存和KV存储双层缓存系统,可以有效减少对相同内容的重复翻译请求,提升效率。
- Völlig kostenlos: 无需申请API密钥,没有订阅费用和使用量限制。
- Sicherheit: 具备输入验证、多维度速率限制、CORS支持和安全头等功能,确保服务安全可靠。
- Leicht zu integrieren: 提供了详细的API文档和多种编程语言(cURL, JavaScript, Python)的使用示例,方便集成到各种应用中。
Hilfe verwenden
DeepLX 提供了两种使用方式:直接使用作者预先部署好的公共服务地址,或者用户自己动手将其部署到自己的 Cloudflare 账户中。
1. 快速上手(使用公共服务)
对于大多数用户来说,直接使用官方提供的公共服务是最简单快捷的方式。
公共服务地址: https://dplx.xi-xu.me
你可以通过发送POST请求到相应的路径来调用翻译功能。
Code-Beispiel
请求时需要指定请求头 Content-Type: application/json
,并在请求体中包含要翻译的文本、源语言和目标语言。
cURL 示例:
- 使用 DeepL 翻译 (推荐):
curl -X POST https://dplx.xi-xu.me/deepl \
-H "Content-Type: application/json" \
-d '{
"text": "Hello, world!",
"source_lang": "EN",
"target_lang": "ZH"
}'
- 使用 谷歌翻译:
curl -X POST https://dplx.xi-xu.me/google \
-H "Content-Type: application/json" \
-d '{
"text": "Hello, world!",
"source_lang": "EN",
"target_lang": "ZH"
}'
JavaScript 示例:
async function translateWithDeepL(text, sourceLang = 'auto', targetLang = 'zh') {
const response = await fetch('https://dplx.xi-xu.me/deepl', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
text: text,
source_lang: sourceLang,
target_lang: targetLang
})
});
const result = await response.json();
return result.data;
}
// 调用示例
translateWithDeepL('Hello, world!', 'en', 'zh')
.then(result => console.log(result))
.catch(error => console.error(error));
Python 示例:
import requests
import json
def translate_with_deepl(text, source_lang='auto', target_lang='zh'):
url = 'https://dplx.xi-xu.me/deepl'
data = {
'text': text,
'source_lang': source_lang,
'target_lang': target_lang
}
response = requests.post(url, json=data)
result = response.json()
if result['code'] == 200:
return result['data']
else:
raise Exception(f"Translation failed: {result.get('message', 'Unknown error')}")
# 调用示例
try:
result = translate_with_deepl('Hello, world!', 'en', 'zh')
print(result)
except Exception as e:
print(f"Error: {e}")
2. 与第三方工具集成
DeepLX 可以方便地集成到许多主流的翻译或学术工具中,以下是一些常用工具的配置方法:
- Pot (跨平台划词翻译软件)
- 下载并安装 Pot。
- 进入 Pot 的“服务设置”。
- 将 DeepL 服务类型配置为
DeepLX
,并将自定义 URL 设置为https://dplx.xi-xu.me/deepl
.
- Zotero (文献管理工具)
- 安装 Zotero。
- 下载并安装 Translate for Zotero 插件。
- 在 Zotero 设置的“翻译”选项卡下,将翻译服务配置为
DeepLX (API)
. - 点击配置按钮,将端点设置为
https://dplx.xi-xu.me/deepl
.
- Immersive Translate (沉浸式翻译浏览器插件)
- 安装插件后,进入“开发者设置”并启用 Beta 测试功能。
- 在“翻译服务”中添加一个自定义翻译服务
DeepLX
. - 将 API URL 配置为
https://dplx.xi-xu.me/deepl
. - 将“每秒最大请求数”设置为
80
,“每次请求最大文本长度”设置为5000
以获得最佳性能。
3. 自行部署
如果你对数据隐私有更高要求或希望获得更稳定的服务,可以按照以下步骤将 DeepLX 部署到自己的 Cloudflare 账户。
Vorbedingungen:
- 一个 Cloudflare 账户。
- 安装了 Node.js 18+。
- 安装了 Wrangler CLI (Cloudflare 的命令行工具)。
Prozess der Bereitstellung:
- Klon-Lager
git clone https://github.com/xixu-me/DeepLX.git cd DeepLX
- Installation von Abhängigkeiten
npm install
- Konfiguration der Umgebung
打开项目根目录下的wrangler.jsonc
文件,修改你的account_id
im Gesang antwortenname
(Worker 应用的名称)。{ "account_id": "你的CLOUDFLARE_ACCOUNT_ID", "name": "你的WORKER名称", ... }
- 创建 KV 命名空间
DeepLX 使用 KV 存储来实现缓存和速率限制。你需要创建两个 KV 命名空间。# 创建缓存 KV npx wrangler kv:namespace create "CACHE_KV" # 创建速率限制 KV npx wrangler kv:namespace create "RATE_LIMIT_KV"
执行命令后,将返回的
id
更新到wrangler.jsonc
文件的kv_namespaces
Teil. - 部署到 Cloudflare
# 部署到生产环境 npx wrangler deploy
部署成功后,你将得到一个自己的 DeepLX 服务地址。
Anwendungsszenario
- 个人和开发者翻译工具集成
用户可以将 DeepLX 作为后端服务,集成到自己开发的应用程序、脚本或机器人中,以实现免费的文本翻译功能,例如聊天机器人、内容聚合器等。 - 学术研究和文档阅读
对于需要阅读大量外语文献的学生和研究人员,可以将 DeepLX 集成到 Zotero、PDF翻译工具(如PDFMathTranslate)等软件中,实现一键翻译PDF文档和学术论文的功能。 - 跨平台桌面应用
DeepLX 可以作为后端API,为 Pot、Bob 等跨平台的桌面划词翻译软件提供支持,让用户在电脑上随时方便地进行文本翻译。 - 浏览器网页翻译
通过在 Immersive Translate 等浏览器插件中配置 DeepLX 服务地址,用户可以在浏览外语网站时获得流畅、免费的双语对照翻译体验。
QA
- 为什么在使用时仍然会遇到 HTTP 429 (请求过多) 的错误?
这可能是由于代理端点配置不正确或数量不足。请检查PROXY_URLS
环境变量是否正确设置。为了获得最佳性能,建议部署并添加尽可能多的 XDPL 代理实例。同时,你也可以在src/lib/config.ts
文件中调整速率限制的配置。 - 翻译结果不准确是什么原因?
首先,请确认你提供的源语言和目标语言代码是否正确。如果源语言设置为自动检测(AUTO
),请确保输入的文本足够长以便服务能够准确识别。此外,文本的编码格式也可能影响翻译质量。 - 自行部署失败了怎么办?
部署失败通常有以下几个原因:首先,检查你的 Cloudflare 账户ID是否在wrangler.jsonc
文件中正确填写;其次,确认是否已经创建了CACHE_KV
im Gesang antwortenRATE_LIMIT_KV
这两个KV命名空间,并将其ID正确配置;最后,确保你的网络环境可以正常访问 Cloudflare 服务。 - DeepLX 和官方的 DeepL API 有什么区别?
主要区别在于成本和性能。DeepL 官方 API 是收费的,并且有严格的请求频率限制。而 DeepLX 是完全免费的,通过负载均衡和多代理机制,它提供了更高的请求速率上限和更低的延迟,同时通过智能重试和熔断机制保证了服务的稳定性。