Coda di Traduzione: Sistema di Elaborazione in Batch

Questo articolo spiega come accodiamo ed elaboriamo le traduzioni in batch per ottimizzare l'uso delle API AI.

Il Problema: La Traduzione On-Demand è Costosa

Tradurre contenuti on-demand presenta problemi:

  • Lento: Ogni traduzione richiede 1-2 secondi

  • Costoso: Costi API per richiesta

  • Ridondante: Lo stesso testo tradotto più volte

  • Bloccante: L'utente aspetta la traduzione

Abbiamo bisogno di un approccio migliore.

La Soluzione: Coda e Batch

Coda: Raccogli le richieste di traduzione

Batch: Elabora più traduzioni insieme

Cache: Memorizza i risultati per il riutilizzo

Pianificazione: Elabora 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 in 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: Controlla se già in coda

Validazione: Rifiuta valori non validi

Elaborazione in Batch

Script

Posizione: scripts/web/process_translation_queue.py

Pianificazione: Esegue ogni 6 ore via cron

File di lock: Previene esecuzioni concorrenti

Flusso di Processo

1. Carica la coda: Leggi tutte le richieste in sospeso

2. Raggruppa per lingua: Raggruppa le richieste della stessa lingua

3. Deduplica: Rimuovi i duplicati all'interno del batch

4. Controlla la cache: Salta i testi già tradotti

5. Traduci il batch: Invia all'API DeepSeek

6. Analizza i risultati: Estrai le traduzioni dalla risposta

7. Salva nella cache: Memorizza nelle tabelle delle frasi

8. Svuota la coda: Rimuovi le richieste elaborate

Traduzione in Batch

Chiamata API

Modello: DeepSeek-V3 (via Together.ai)

Prompt di sistema: Memorizzato in cache (stesso per tutti i batch in una lingua)

Prompt utente: Variabile (specifico per batch)

Formato: Lista numerata

Esempio:

Traduci questi 10 testi:
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

Fallimento API: Riprova con API di riserva

Fallimento analisi: Restituisci i testi originali

Successo parziale: Salva le traduzioni riuscite, rimetti in coda i fallimenti

Strategia di Memorizzazione in Cache

Tabelle delle Frasi

Posizione: File JSON per lingua

Formato: {"Inglese": "Traduzione"}

Caricamento: Caricati 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 marchio: 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, controlla se già tradotto:

Metodo: Analisi del set di caratteri

Hindi: Scrittura Devanagari

Cinese: Caratteri CJK

Arabo: Scrittura araba

Vantaggio: Salta traduzioni non necessarie

Gestione della Priorità

Priorità alta: Nomi prodotti, caratteristiche (elabora per primo)

Priorità normale: Descrizioni, articoli (elabora per secondo)

Priorità bassa: Contenuti vecchi, raramente visualizzati (elabora per ultimo)

Vantaggio: Contenuti importanti 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: Traduci nuovi articoli settimanalmente

Stringhe Babel: Aggiorna le traduzioni dei template settimanalmente

Script: scripts/web/translate_articles_weekly.sh

Monitoraggio

Dimensione della Coda

Traccia le richieste in sospeso:

  • Totale richieste

  • Richieste per lingua

  • Età della richiesta più vecchia

Allerta: Se la coda diventa troppo grande

Statistiche di Traduzione

Traccia l'elaborazione:

  • Traduzioni per batch

  • Tasso di successo API

  • Tasso di successo cache

  • Tempo di elaborazione

Tracciamento dei Costi

Monitora l'uso delle API:

  • Richieste al giorno

  • Token per richiesta

  • Costo per lingua

Riferimenti

Articoli Correlati

Riepilogo

La coda di traduzione abilita un'elaborazione efficiente in batch:

Coda:

  • ✅ Raccoglie le richieste di traduzione

  • ✅ Deduplica all'interno del batch

  • ✅ Gestione della priorità

  • ✅ Validazione e filtraggio

Elaborazione in batch:

  • ✅ Raggruppa per lingua

  • ✅ Invia all'API DeepSeek

  • ✅ Analizza le risposte numerate

  • ✅ Salva nelle tabelle delle frasi

Memorizzazione in cache:

  • ✅ Controlla la cache prima di tradurre

  • ✅ Alto tasso di successo della cache

  • ✅ Costi API ridotti

Pianificazione:

  • ✅ Ogni 6 ore via cron

  • ✅ Il file di lock previene esecuzioni concorrenti

  • ✅ Traduzioni settimanali articoli

Preservazione:

  • ✅ Nomi di marchio

  • ✅ Tag HTML

  • ✅ URL e SKU

Questo approccio riduce i costi delle API e migliora la qualità della traduzione attraverso l'elaborazione in batch e la memorizzazione in cache.


← Torna all'Indice della Documentazione