Cola de Traducción: Sistema de Procesamiento por Lotes
Este artículo explica cómo encolamos y procesamos traducciones por lotes para optimizar el uso de la API de IA.
El Problema: La Traducción Bajo Demanda es Costosa
Traducir contenido bajo demanda tiene problemas:
-
Lento: Cada traducción tarda 1-2 segundos
-
Costoso: Costos de API por solicitud
-
Redundante: El mismo texto se traduce múltiples veces
-
Bloqueante: El usuario espera por la traducción
Necesitamos un mejor enfoque.
La Solución: Cola y Lotes
Cola: Recopilar solicitudes de traducción
Lote: Procesar múltiples traducciones juntas
Caché: Almacenar resultados para reutilización
Programación: Procesar la cola periódicamente (no en tiempo real)
Estructura de la Cola
Archivo de Cola
Ubicación: Archivo JSON en disco
Formato: Array de solicitudes de traducción
Campos:
-
text: Texto en inglés a traducir -
target_lang: Código de idioma (hi, de, fr, etc.) -
context: Dónde aparece el texto (product, query, article) -
priority: Alta/normal/baja
Agregar a la Cola
Cuando falta una traducción:
queue_translation(text, target_lang, context="product")
Deduplicación: Verificar si ya está en cola
Validación: Rechazar valores inválidos
Procesamiento por Lotes
Script
Ubicación: scripts/web/process_translation_queue.py
Programación: Se ejecuta cada 6 horas vía cron
Archivo de bloqueo: Previene ejecuciones concurrentes
Flujo del Proceso
1. Cargar cola: Leer todas las solicitudes pendientes
2. Agrupar por idioma: Agrupar solicitudes del mismo idioma
3. Deduplicar: Eliminar duplicados dentro del lote
4. Verificar caché: Omitir textos ya traducidos
5. Traducir lote: Enviar a la API de DeepSeek
6. Parsear resultados: Extraer traducciones de la respuesta
7. Guardar en caché: Almacenar en tablas de frases
8. Limpiar cola: Eliminar solicitudes procesadas
Traducción por Lotes
Llamada a la API
Modelo: DeepSeek-V3 (vía Together.ai)
Prompt del sistema: En caché (igual para todos los lotes en un idioma)
Prompt del usuario: Variable (específico del lote)
Formato: Lista numerada
Ejemplo:
Translate these 10 texts:
1. Mini PC
2. Thin Client
3. Compact Desktop
...
Respuesta:
1. मिनी पीसी
2. थिन क्लाइंट
3. कॉम्पैक्ट डेस्कटॉप
...
Parseo
Extraer traducciones por número de línea:
-
Eliminar prefijo numérico (
1.,2., etc.) -
Emparejar con textos originales por posición
-
Validar que el conteo coincida
Manejo de Errores
Fallo de API: Reintentar con API de respaldo
Fallo de parseo: Devolver textos originales
Éxito parcial: Guardar traducciones exitosas, reencolar fallidas
Estrategia de Caché
Tablas de Frases
Ubicación: Archivos JSON por idioma
Formato: {"English": "Translation"}
Carga: Se cargan una vez al inicio
Beneficio: Búsquedas rápidas, sin llamadas a la API
Tasa de Aciertos de Caché
Primera ejecución: Baja (todo es nuevo)
Ejecuciones posteriores: Alta (la mayoría de textos en caché)
Beneficio: Costos de API reducidos
Reglas de Preservación
Durante la traducción, preservamos:
Nombres de marca: Thinvent®, Intel®, AMD®
Etiquetas HTML: <p>, <br>, <strong>
URLs: https://www.thinvent.in
SKUs: Treo-N100-8-256
Números: 8GB, 256GB, 4 cores
Implementación: Patrones regex en el prompt del sistema
Detección de Idioma
Antes de traducir, verificar si ya está traducido:
Método: Análisis de conjunto de caracteres
Hindi: Escritura devanagari
Chino: Caracteres CJK
Árabe: Escritura árabe
Beneficio: Omitir traducciones innecesarias
Manejo de Prioridades
Prioridad alta: Nombres de productos, características (procesar primero)
Prioridad normal: Descripciones, artículos (procesar segundo)
Prioridad baja: Contenido antiguo, raramente visto (procesar al final)
Beneficio: El contenido importante se traduce primero
Programación
Tarea Cron
Frecuencia: Cada 6 horas
Comando: python3 scripts/web/process_translation_queue.py
Archivo de bloqueo: /tmp/process_translation_queue.lock
Beneficio: Procesamiento automático, sin intervención manual
Tareas Semanales
Artículos: Traducir nuevos artículos semanalmente
Cadenas de Babel: Actualizar traducciones de plantillas semanalmente
Script: scripts/web/translate_articles_weekly.sh
Monitoreo
Tamaño de la Cola
Rastrear solicitudes pendientes:
-
Total de solicitudes
-
Solicitudes por idioma
-
Antigüedad de la solicitud más antigua
Alerta: Si la cola crece demasiado
Estadísticas de Traducción
Rastrear procesamiento:
-
Traducciones por lote
-
Tasa de éxito de API
-
Tasa de aciertos de caché
-
Tiempo de procesamiento
Seguimiento de Costos
Monitorear uso de API:
-
Solicitudes por día
-
Tokens por solicitud
-
Costo por idioma
Referencias
Artículos Relacionados
-
Sistema de Traducción - Híbrido de tres tecnologías
-
Generación de Contenido con IA - Integración con DeepSeek
-
Detección de Idioma - Preferencia de idioma del usuario
Resumen
La cola de traducción permite un procesamiento por lotes eficiente:
Cola:
-
Recopilar solicitudes de traducción
-
Deduplicar dentro del lote
-
Manejo de prioridades
-
Validación y filtrado
Procesamiento por lotes:
-
Agrupar por idioma
-
Enviar a la API de DeepSeek
-
Parsear respuestas numeradas
-
Guardar en tablas de frases
Caché:
-
Verificar caché antes de traducir
-
Alta tasa de aciertos de caché
-
Costos de API reducidos
Programación:
-
Cada 6 horas vía cron
-
El archivo de bloqueo previene ejecuciones concurrentes
-
Traducciones semanales de artículos
Preservación:
-
Nombres de marca
-
Etiquetas HTML
-
URLs y SKUs
Este enfoque reduce los costos de API y mejora la calidad de traducción mediante lotes y caché.