Fila de Tradução: Sistema de Processamento em Lote
Este artigo explica como enfileiramos e processamos traduções em lote para otimizar o uso da API de IA.
O Problema: Tradução Sob Demanda é Cara
Traduzir conteúdo sob demanda apresenta problemas:
-
Lento: Cada tradução leva 1-2 segundos
-
Caro: Custos de API por requisição
-
Redundante: O mesmo texto é traduzido múltiplas vezes
-
Bloqueante: O usuário espera pela tradução
Precisamos de uma abordagem melhor.
A Solução: Fila e Lote
Fila: Coletar requisições de tradução
Lote: Processar múltiplas traduções juntas
Cache: Armazenar resultados para reutilização
Agendamento: Processar a fila periodicamente (não em tempo real)
Estrutura da Fila
Arquivo de Fila
Localização: Arquivo JSON em disco
Formato: Array de requisições de tradução
Campos:
-
text: Texto em inglês a traduzir -
target_lang: Código do idioma (hi, de, fr, etc.) -
context: Onde o texto aparece (produto, consulta, artigo) -
priority: Alta/normal/baixa
Adicionando à Fila
Quando uma tradução está faltando:
queue_translation(text, target_lang, context="product")
Deduplicação: Verificar se já está na fila
Validação: Rejeitar valores inválidos
Processamento em Lote
Script
Localização: scripts/web/process_translation_queue.py
Agendamento: Executa a cada 6 horas via cron
Arquivo de bloqueio: Impede execuções simultâneas
Fluxo do Processo
1. Carregar fila: Ler todas as requisições pendentes
2. Agrupar por idioma: Agrupar requisições do mesmo idioma
3. Deduplicar: Remover duplicatas dentro do lote
4. Verificar cache: Pular textos já traduzidos
5. Traduzir lote: Enviar para a API DeepSeek
6. Analisar resultados: Extrair traduções da resposta
7. Salvar no cache: Armazenar nas tabelas de frases
8. Limpar fila: Remover requisições processadas
Tradução em Lote
Chamada à API
Modelo: DeepSeek-V3 (via Together.ai)
Prompt do sistema: Em cache (o mesmo para todos os lotes no idioma)
Prompt do usuário: Variável (específico do lote)
Formato: Lista numerada
Exemplo:
Translate these 10 texts:
1. Mini PC
2. Thin Client
3. Compact Desktop
...
Resposta:
1. मिनी पीसी
2. थिन क्लाइंट
3. कॉम्पैक्ट डेस्कटॉप
...
Análise
Extrair traduções pelo número da linha:
-
Remover prefixo numérico (
1.,2., etc.) -
Corresponder aos textos originais por posição
-
Validar se a contagem corresponde
Tratamento de Erros
Falha na API: Tentar novamente com API de fallback
Falha na análise: Retornar textos originais
Sucesso parcial: Salvar traduções bem-sucedidas, reenfileirar falhas
Estratégia de Cache
Tabelas de Frases
Localização: Arquivos JSON por idioma
Formato: {"English": "Translation"}
Carregamento: Carregado uma vez na inicialização
Benefício: Consultas rápidas, sem chamadas à API
Taxa de Acerto do Cache
Primeira execução: Baixa (tudo novo)
Execuções subsequentes: Alta (a maioria dos textos em cache)
Benefício: Custos de API reduzidos
Regras de Preservação
Durante a tradução, preservamos:
Nomes de marcas: Thinvent®, Intel®, AMD®
Tags HTML: <p>, <br>, <strong>
URLs: https://www.thinvent.in
SKUs: Treo-N100-8-256
Números: 8GB, 256GB, 4 cores
Implementação: Padrões regex no prompt do sistema
Detecção de Idioma
Antes de traduzir, verificar se já está traduzido:
Método: Análise do conjunto de caracteres
Hindi: Escrita Devanágari
Chinês: Caracteres CJK
Árabe: Escrita árabe
Benefício: Pular traduções desnecessárias
Tratamento de Prioridade
Alta prioridade: Nomes de produtos, recursos (processar primeiro)
Prioridade normal: Descrições, artigos (processar em segundo)
Baixa prioridade: Conteúdo antigo, raramente visualizado (processar por último)
Benefício: Conteúdo importante traduzido primeiro
Agendamento
Tarefa Cron
Frequência: A cada 6 horas
Comando: python3 scripts/web/process_translation_queue.py
Arquivo de bloqueio: /tmp/process_translation_queue.lock
Benefício: Processamento automático, sem intervenção manual
Tarefas Semanais
Artigos: Traduzir novos artigos semanalmente
Strings do Babel: Atualizar traduções de templates semanalmente
Script: scripts/web/translate_articles_weekly.sh
Monitoramento
Tamanho da Fila
Acompanhar requisições pendentes:
-
Total de requisições
-
Requisições por idioma
-
Idade da requisição mais antiga
Alerta: Se a fila crescer demais
Estatísticas de Tradução
Acompanhar o processamento:
-
Traduções por lote
-
Taxa de sucesso da API
-
Taxa de acerto do cache
-
Tempo de processamento
Rastreamento de Custos
Monitorar o uso da API:
-
Requisições por dia
-
Tokens por requisição
-
Custo por idioma
Referências
Artigos Relacionados
-
Sistema de Tradução - Híbrido de três tecnologias
-
Geração de Conteúdo por IA - Integração com DeepSeek
-
Detecção de Idioma - Preferência de idioma do usuário
Resumo
A fila de tradução permite processamento em lote eficiente:
Fila:
-
Coletar requisições de tradução
-
Deduplicar dentro do lote
-
Tratamento de prioridade
-
Validação e filtragem
Processamento em lote:
-
Agrupar por idioma
-
Enviar para a API DeepSeek
-
Analisar respostas numeradas
-
Salvar nas tabelas de frases
Cache:
-
Verificar cache antes de traduzir
-
Alta taxa de acerto do cache
-
Custos de API reduzidos
Agendamento:
-
A cada 6 horas via cron
-
Arquivo de bloqueio impede execuções simultâneas
-
Traduções semanais de artigos
Preservação:
-
Nomes de marcas
-
Tags HTML
-
URLs e SKUs
Essa abordagem reduz os custos de API e melhora a qualidade da tradução por meio de processamento em lote e cache.