Übersetzungswarteschlange: Batch-Verarbeitungssystem

Dieser Artikel erklärt, wie wir Übersetzungen in eine Warteschlange einreihen und im Batch verarbeiten, um die Nutzung der KI-API zu optimieren.

Das Problem: Übersetzung auf Abruf ist teuer

Die Übersetzung von Inhalten auf Abruf hat Probleme:

  • Langsam: Jede Übersetzung dauert 1-2 Sekunden

  • Teuer: API-Kosten pro Anfrage

  • Redundant: Derselbe Text wird mehrfach übersetzt

  • Blockierend: Der Benutzer wartet auf die Übersetzung

Wir brauchen einen besseren Ansatz.

Die Lösung: Warteschlange und Batch

Warteschlange: Übersetzungsanfragen sammeln

Batch: Mehrere Übersetzungen zusammen verarbeiten

Cache: Ergebnisse zur Wiederverwendung speichern

Zeitplan: Warteschlange regelmäßig verarbeiten (nicht in Echtzeit)

Warteschlangenstruktur

Warteschlangendatei

Speicherort: JSON-Datei auf der Festplatte

Format: Array von Übersetzungsanfragen

Felder:

  • text: Englischer Text, der übersetzt werden soll

  • target_lang: Sprachcode (hi, de, fr, usw.)

  • context: Wo der Text erscheint (Produkt, Anfrage, Artikel)

  • priority: Hoch/normal/niedrig

Zur Warteschlange hinzufügen

Wenn eine Übersetzung fehlt:

queue_translation(text, target_lang, context="product")

Deduplizierung: Prüfen, ob bereits in der Warteschlange

Validierung: Ungültige Werte ablehnen

Batch-Verarbeitung

Skript

Speicherort: scripts/web/process_translation_queue.py

Zeitplan: Läuft alle 6 Stunden via Cron

Sperrdatei: Verhindert gleichzeitige Ausführungen

Prozessablauf

1. Warteschlange laden: Alle ausstehenden Anfragen lesen

2. Nach Sprache gruppieren: Anfragen in derselben Sprache bündeln

3. Deduplizieren: Duplikate innerhalb des Batches entfernen

4. Cache prüfen: Bereits übersetzte Texte überspringen

5. Batch übersetzen: An DeepSeek API senden

6. Ergebnisse parsen: Übersetzungen aus der Antwort extrahieren

7. In Cache speichern: In Phrasentabellen speichern

8. Warteschlange leeren: Verarbeitete Anfragen entfernen

Batch-Übersetzung

API-Aufruf

Modell: DeepSeek-V3 (über Together.ai)

System-Prompt: Gecacht (gleich für alle Batches in einer Sprache)

Benutzer-Prompt: Variabel (batch-spezifisch)

Format: Nummerierte Liste

Beispiel:

Translate these 10 texts:
1. Mini PC
2. Thin Client
3. Compact Desktop
...

Antwort:

1. मिनी पीसी
2. थिन क्लाइंट
3. कॉम्पैक्ट डेस्कटॉप
...

Parsing

Übersetzungen nach Zeilennummer extrahieren:

  • Zahlenpräfix entfernen (1., 2., usw.)

  • Anhand der Position den Originaltexten zuordnen

  • Validieren, dass die Anzahl übereinstimmt

Fehlerbehandlung

API-Fehler: Wiederholen mit Fallback-API

Parsing-Fehler: Originaltexte zurückgeben

Teilerfolg: Erfolgreiche Übersetzungen speichern, Fehlgeschlagene erneut in die Warteschlange

Caching-Strategie

Phrasentabellen

Speicherort: JSON-Dateien pro Sprache

Format: {"English": "Translation"}

Laden: Einmal beim Start geladen

Vorteil: Schnelle Suchvorgänge, keine API-Aufrufe

Cache-Trefferquote

Erster Durchlauf: Niedrig (alles neu)

Nachfolgende Durchläufe: Hoch (die meisten Texte gecacht)

Vorteil: Reduzierte API-Kosten

Erhaltungsregeln

Während der Übersetzung bewahren wir:

Markennamen: Thinvent®, Intel®, AMD®

HTML-Tags: <p>, <br>, <strong>

URLs: https://www.thinvent.in

SKUs: Treo-N100-8-256

Zahlen: 8GB, 256GB, 4 Kerne

Implementierung: Regex-Muster im System-Prompt

Spracherkennung

Vor der Übersetzung prüfen, ob bereits übersetzt:

Methode: Zeichensatzanalyse

Hindi: Devanagari-Schrift

Chinesisch: CJK-Zeichen

Arabisch: Arabische Schrift

Vorteil: Unnötige Übersetzungen überspringen

Prioritätsbehandlung

Hohe Priorität: Produktnamen, Funktionen (zuerst verarbeiten)

Normale Priorität: Beschreibungen, Artikel (zweitens verarbeiten)

Niedrige Priorität: Alte Inhalte, selten angesehen (zuletzt verarbeiten)

Vorteil: Wichtige Inhalte zuerst übersetzt

Planung

Cron-Job

Häufigkeit: Alle 6 Stunden

Befehl: python3 scripts/web/process_translation_queue.py

Sperrdatei: /tmp/process_translation_queue.lock

Vorteil: Automatische Verarbeitung, kein manueller Eingriff

Wöchentliche Aufgaben

Artikel: Neue Artikel wöchentlich übersetzen

Babel-Strings: Template-Übersetzungen wöchentlich aktualisieren

Skript: scripts/web/translate_articles_weekly.sh

Überwachung

Warteschlangengröße

Ausstehende Anfragen verfolgen:

  • Gesamtzahl der Anfragen

  • Anfragen pro Sprache

  • Alter der ältesten Anfrage

Warnung: Wenn die Warteschlange zu groß wird

Übersetzungsstatistiken

Verarbeitung verfolgen:

  • Übersetzungen pro Batch

  • API-Erfolgsrate

  • Cache-Trefferquote

  • Verarbeitungszeit

Kostenverfolgung

API-Nutzung überwachen:

  • Anfragen pro Tag

  • Tokens pro Anfrage

  • Kosten pro Sprache

Referenzen

Verwandte Artikel

Zusammenfassung

Die Übersetzungswarteschlange ermöglicht effiziente Batch-Verarbeitung:

Warteschlange:

  • Übersetzungsanfragen sammeln

  • Innerhalb des Batches deduplizieren

  • Prioritätsbehandlung

  • Validierung und Filterung

Batch-Verarbeitung:

  • Nach Sprache gruppieren

  • An DeepSeek API senden

  • Nummerierte Antworten parsen

  • In Phrasentabellen speichern

Caching:

  • Cache vor der Übersetzung prüfen

  • Hohe Cache-Trefferquote

  • Reduzierte API-Kosten

Planung:

  • Alle 6 Stunden via Cron

  • Sperrdatei verhindert gleichzeitige Ausführungen

  • Wöchentliche Artikelübersetzungen

Erhaltung:

  • Markennamen

  • HTML-Tags

  • URLs und SKUs

Dieser Ansatz reduziert API-Kosten und verbessert die Übersetzungsqualität durch Batching und Caching.


← Zurück zum Dokumentationsindex