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

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.


← Torna all'Indice della Documentazione