O DeepLX é um aplicativo sem servidor (Serverless) implantado no Cloudflare Workers que fornece aos usuários uma interface gratuita e de alto desempenho para o DeepL e os Serviços de Tradução do Google. O projeto resolve com eficácia o erro HTTP 429 (muitas solicitações), comum ao usar APIs de tradução tradicionais, por meio de roteamento de proxy inteligente, algoritmos avançados de limitação de taxa e um mecanismo de fusão. Em comparação com a API oficial, o DeepLX oferece maior limitação de taxa de solicitação e menor latência de rede. Como é totalmente gratuito, sem chaves de API ou taxas de licenciamento, os usuários têm acesso ilimitado aos recursos de tradução com uma única implementação. O projeto também apresenta alta estabilidade e vários recursos de segurança, com o objetivo de fornecer uma solução de tradução confiável e de baixo custo para desenvolvedores e usuários em geral.
Projeto de referência: https://github.com/OwO-Network/DeepLX
Lista de funções
- Suporte a serviços de várias traduçõesTambém suporta DeepL (
/deepl
) e o Google Translate (/google
) dois dos principais mecanismos de tradução. - alto desempenhoImplementação de rede de borda global baseada em Cloudflare Workers para baixa latência e capacidade de resposta de início zero.
- Altos níveis de solicitaçãoSuporte a solicitações simultâneas mais altas do que a API oficial por meio de balanceamento de carga inteligente e vários pontos de extremidade de proxy.
- alta estabilidadeMecanismo de fusão e estratégia de repetição de backoff exponencial, que podem detectar e alternar automaticamente os pontos de extremidade do agente com falha, evitando quase completamente o problema.
429
erros para garantir a continuidade do serviço. - Cache inteligenteSistema de cache de camada dupla integrado de memória e armazenamento KV pode reduzir efetivamente as solicitações de tradução repetidas para o mesmo conteúdo e aumentar a eficiência.
- Totalmente gratuitoNão há necessidade de solicitar uma chave de API, não há taxas de assinatura e não há limites de uso.
- segurançaRecursos como validação de entrada, limitação de taxa multidimensional, suporte a CORS e cabeçalhos de segurança garantem um serviço seguro e confiável.
- Fácil de integrarAPI: fornece documentação detalhada da API e exemplos de uso em várias linguagens de programação (cURL, JavaScript, Python) para facilitar a integração em vários aplicativos.
Usando a Ajuda
O DeepLX oferece duas maneiras de usá-lo: diretamente com o endereço de serviço público pré-implantado do autor, ou os usuários podem resolver o problema com suas próprias mãos e implantá-lo em suas contas do Cloudflare.
1. início rápido (uso de serviços públicos)
Para a maioria dos usuários, usar diretamente os serviços públicos fornecidos oficialmente é a maneira mais fácil e rápida.
Endereço do serviço público: https://dplx.xi-xu.me
Você pode invocar a função de tradução enviando uma solicitação POST para o caminho apropriado.
exemplo de código
Os cabeçalhos de solicitação precisam ser especificados ao solicitar Content-Type: application/json
e inclua o texto a ser traduzido, o idioma de origem e o idioma de destino no corpo da solicitação.
Exemplo de cURL.
- Traduzido pelo site DeepL (recomendado).
curl -X POST https://dplx.xi-xu.me/deepl \
-H "Content-Type: application/json" \
-d '{
"text": "Hello, world!",
"source_lang": "EN",
"target_lang": "ZH"
}'
- Usando o Google Translate.
curl -X POST https://dplx.xi-xu.me/google \
-H "Content-Type: application/json" \
-d '{
"text": "Hello, world!",
"source_lang": "EN",
"target_lang": "ZH"
}'
Exemplo de 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));
Exemplo de 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. integração com ferramentas de terceiros
O DeepLX pode ser facilmente integrado a muitas das principais ferramentas de tradução ou acadêmicas. A seguir estão as configurações de algumas ferramentas comuns:
- Pot (software de tradução de palavras para várias plataformas)
- Faça o download e instale o Pot.
- Vá para as configurações de serviço do pote.
- Configure o tipo de serviço DeepL para
DeepLX
e definir o URL personalizado comohttps://dplx.xi-xu.me/deepl
.
- Zotero (ferramenta de gerenciamento de documentação)
- Instale o Zotero.
- Faça o download e instale o plug-in Translate for Zotero.
- Na guia Translations (Traduções) de suas configurações do Zotero, configure o serviço de tradução da seguinte forma
DeepLX (API)
. - Clique no botão Configure para definir o ponto de extremidade como
https://dplx.xi-xu.me/deepl
.
- Immersive Translate (plug-in de navegador do Immersive Translate)
- Depois de instalar o plug-in, vá para "Developer Settings" (Configurações do desenvolvedor) e ative o teste beta.
- Adição de um serviço de tradução personalizado no Translation Services
DeepLX
. - Configure o URL da API como
https://dplx.xi-xu.me/deepl
. - Defina o "Número máximo de solicitações por segundo" como
80
Se o "Comprimento máximo do texto por solicitação" for definido como5000
para obter um desempenho ideal.
3. autoimplantação
Se você tiver requisitos mais altos de privacidade de dados ou quiser um serviço mais estável, poderá seguir as etapas abaixo para implantar o DeepLX em sua própria conta da Cloudflare.
pré-condições:
- Uma conta da Cloudflare.
- O Node.js 18+ está instalado.
- A Wrangler CLI (ferramenta de linha de comando da Cloudflare) está instalada.
Processo de implantação:
- armazém de clones
git clone https://github.com/xixu-me/DeepLX.git cd DeepLX
- Instalação de dependências
npm install
- Ambiente de configuração
Abra o diretório raiz do projeto dowrangler.jsonc
modifique seu arquivoaccount_id
responder cantandoname
(Nome do aplicativo do trabalhador).{ "account_id": "你的CLOUDFLARE_ACCOUNT_ID", "name": "你的WORKER名称", ... }
- Criação de um espaço de nome KV
O DeepLX usa o armazenamento KV para armazenamento em cache e limitação de taxa. Você precisa criar dois namespaces KV.# 创建缓存 KV npx wrangler kv:namespace create "CACHE_KV" # 创建速率限制 KV npx wrangler kv:namespace create "RATE_LIMIT_KV"
Após a execução do comando, a mensagem
id
Atualizado parawrangler.jsonc
documentaçãokv_namespaces
Parte. - Implementação na Cloudflare
# 部署到生产环境 npx wrangler deploy
Após uma implementação bem-sucedida, você receberá um endereço de serviço DeepLX próprio.
cenário do aplicativo
- Integração de ferramentas de tradução pessoais e para desenvolvedores
Os usuários podem integrar o DeepLX como um serviço de back-end em aplicativos, scripts ou bots que desenvolvem para a funcionalidade de tradução de texto livre, como chatbots, agregadores de conteúdo e muito mais. - Pesquisa acadêmica e leitura de documentos
Para estudantes e pesquisadores que precisam ler muita literatura em idioma estrangeiro, o DeepLX pode ser integrado a softwares como o Zotero, ferramentas de tradução de PDF (por exemplo, PDFMathTranslate) e outros softwares para obter a tradução de documentos PDF e trabalhos acadêmicos com um clique. - Aplicativos de desktop multiplataforma
O DeepLX pode ser usado como uma API de back-end para oferecer suporte a softwares de tradução de desktop entre plataformas, como Pot, Bob, etc., para que os usuários possam traduzir textos facilmente em seus computadores a qualquer momento. - Tradução da Web do navegador
Por meio do uso do Tradução imersiva Ao configurar o endereço de serviço do DeepLX nos plug-ins do navegador, os usuários podem desfrutar de uma experiência de tradução bilíngue suave e gratuita ao navegar em sites de idiomas estrangeiros.
QA
- Por que ainda recebo o erro HTTP 429 (muitas solicitações) ao usá-lo?
Isso pode ocorrer devido à configuração incorreta ou insuficiente do ponto de extremidade do proxy. Verifique oPROXY_URLS
As variáveis de ambiente estão definidas corretamente. Para obter o melhor desempenho, é recomendável implantar e adicionar o maior número possível de instâncias do agente XDPL. Além disso, você pode adicionar uma nova instância do agente XDPL à pastasrc/lib/config.ts
para ajustar a configuração de limitação de taxa. - O que causa resultados de tradução imprecisos?
Em primeiro lugar, verifique se o código do idioma de origem e de destino que você forneceu estão corretos. Se o idioma de origem estiver definido como detecção automática (AUTO
), certifique-se de que o texto inserido seja longo o suficiente para ser reconhecido com precisão pelo serviço. Além disso, o formato em que o texto é codificado também pode afetar a qualidade da tradução. - E se a autoimplantação falhar?
As implantações geralmente falham por vários motivos: primeiro, verifique se o ID da sua conta do Cloudflare está na pastawrangler.jsonc
está preenchido corretamente; em segundo lugar, confirme que o arquivoCACHE_KV
responder cantandoRATE_LIMIT_KV
ambos os namespaces KV e configure seus IDs corretamente; por fim, certifique-se de que seu ambiente de rede possa acessar o serviço Cloudflare corretamente. - Qual é a diferença entre o DeepLX e a API oficial DeepL?
A principal diferença é o custo e o desempenho. A API oficial do DeepL é paga e tem um limite rigoroso de frequência de solicitação. O DeepLX é totalmente gratuito e, por meio de mecanismos de balanceamento de carga e multiproxy, oferece limites de taxa de solicitação mais altos e latência mais baixa, além de garantir a estabilidade do serviço por meio de novas tentativas e derretimentos inteligentes.