Coda di Traduzione: Sistema di Elaborazione in Batch
Questo articolo spiega come mettiamo in coda ed elaboriamo le traduzioni in batch per ottimizzare l'uso dell'API AI.
Il Problema: La Traduzione su Richiesta è Costosa
Tradurre i contenuti su richiesta presenta problemi:
-
Lenta: Ogni traduzione richiede 1-2 secondi
-
Costosa: Costi API per richiesta
-
Ridondante: Lo stesso testo tradotto più volte
-
Bloccante: L'utente attende la traduzione
Abbiamo bisogno di un approccio migliore.
La Soluzione: Coda e Batch
Coda: Raccogliere le richieste di traduzione
Batch: Elaborare più traduzioni insieme
Cache: Memorizzare i risultati per il riutilizzo
Pianificazione: Elaborare la coda periodicamente (non in tempo reale)
Struttura della Coda
File della Coda
Posizione: File JSON su disco
Formato: Array di richieste di traduzione
Campi:
-
text: Testo inglese da tradurre -
target_lang: Codice lingua (hi, de, fr, ecc.) -
context: Dove appare il testo (prodotto, query, articolo) -
priority: Alta/normale/bassa
Aggiunta alla Coda
Quando manca una traduzione:
queue_translation(text, target_lang, context="product")
Deduplicazione: Verifica se già in coda
Validazione: Rifiuta valori non validi
Elaborazione in Batch
Script
Posizione: scripts/web/process_translation_queue.py
Pianificazione: Eseguito ogni 6 ore tramite cron
File di lock: Impedisce esecuzioni concorrenti
Flusso di Elaborazione
1. Carica coda: Leggi tutte le richieste in sospeso
2. Raggruppa per lingua: Raggruppa le richieste nella stessa lingua
3. Deduplica: Rimuovi i duplicati all'interno del batch
4. Controlla cache: Salta i testi già tradotti
5. Traduci batch: Invia all'API DeepSeek
6. Analizza risultati: Estrai le traduzioni dalla risposta
7. Salva in cache: Memorizza nelle tabelle delle frasi
8. Svuota coda: Rimuovi le richieste elaborate
Traduzione in Batch
Chiamata API
Modello: DeepSeek-V3 (tramite Together.ai)
Prompt di sistema: In cache (uguale per tutti i batch nella stessa lingua)
Prompt utente: Variabile (specifico del batch)
Formato: Lista numerata
Esempio:
Translate these 10 texts:
1. Mini PC
2. Thin Client
3. Compact Desktop
...
Risposta:
1. मिनी पीसी
2. थिन क्लाइंट
3. कॉम्पैक्ट डेस्कटॉप
...
Analisi
Estrai le traduzioni per numero di riga:
-
Rimuovi il prefisso numerico (
1.,2., ecc.) -
Abbina ai testi originali per posizione
-
Valida che il conteggio corrisponda
Gestione degli Errori
Errore API: Riprova con API di fallback
Errore di analisi: Restituisci i testi originali
Successo parziale: Salva le traduzioni riuscite, rimetti in coda quelle fallite
Strategia di Caching
Tabelle delle Frasi
Posizione: File JSON per lingua
Formato: {"English": "Translation"}
Caricamento: Caricato una volta all'avvio
Vantaggio: Ricerche veloci, nessuna chiamata API
Tasso di Successo della Cache
Prima esecuzione: Basso (tutto nuovo)
Esecuzioni successive: Alto (la maggior parte dei testi in cache)
Vantaggio: Costi API ridotti
Regole di Preservazione
Durante la traduzione, preserviamo:
Nomi di marca: Thinvent®, Intel®, AMD®
Tag HTML: <p>, <br>, <strong>
URL: https://www.thinvent.in
SKU: Treo-N100-8-256
Numeri: 8GB, 256GB, 4 core
Implementazione: Pattern regex nel prompt di sistema
Rilevamento della Lingua
Prima di tradurre, verifica se già tradotto:
Metodo: Analisi del set di caratteri
Hindi: Scrittura Devanagari
Cinese: Caratteri CJK
Arabo: Scrittura araba
Vantaggio: Salta traduzioni non necessarie
Gestione delle Priorità
Alta priorità: Nomi di prodotti, caratteristiche (elabora prima)
Priorità normale: Descrizioni, articoli (elabora seconda)
Bassa priorità: Contenuti vecchi, raramente visualizzati (elabora per ultima)
Vantaggio: I contenuti importanti vengono tradotti per primi
Pianificazione
Cron Job
Frequenza: Ogni 6 ore
Comando: python3 scripts/web/process_translation_queue.py
File di lock: /tmp/process_translation_queue.lock
Vantaggio: Elaborazione automatica, nessun intervento manuale
Attività Settimanali
Articoli: Tradurre nuovi articoli settimanalmente
Stringhe Babel: Aggiornare le traduzioni dei template settimanalmente
Script: scripts/web/translate_articles_weekly.sh
Monitoraggio
Dimensione della Coda
Tieni traccia delle richieste in sospeso:
-
Richieste totali
-
Richieste per lingua
-
Età della richiesta più vecchia
Avviso: Se la coda cresce troppo
Statistiche di Traduzione
Tieni traccia dell'elaborazione:
-
Traduzioni per batch
-
Tasso di successo API
-
Tasso di successo della cache
-
Tempo di elaborazione
Monitoraggio dei Costi
Monitora l'uso dell'API:
-
Richieste al giorno
-
Token per richiesta
-
Costo per lingua
Riferimenti
Articoli Correlati
-
Translation System - Ibrido a tre tecnologie
-
Content AI Generation - Integrazione DeepSeek
-
Language Detection - Preferenza linguistica dell'utente
Riepilogo
La coda di traduzione consente un'elaborazione in batch efficiente:
Coda:
-
Raccogli le richieste di traduzione
-
Deduplica all'interno del batch
-
Gestione delle priorità
-
Validazione e filtraggio
Elaborazione in batch:
-
Raggruppa per lingua
-
Invia all'API DeepSeek
-
Analizza le risposte numerate
-
Salva nelle tabelle delle frasi
Caching:
-
Controlla la cache prima di tradurre
-
Alto tasso di successo della cache
-
Costi API ridotti
Pianificazione:
-
Ogni 6 ore tramite cron
-
Il file di lock impedisce esecuzioni concorrenti
-
Traduzioni settimanali degli articoli
Preservazione:
-
Nomi di marca
-
Tag HTML
-
URL e SKU
Questo approccio riduce i costi API e migliora la qualità della traduzione attraverso il batching e il caching.