Übersetzungswarteschlange: Stapelverarbeitungssystem

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

Das Problem: On-Demand-Übersetzung ist teuer

Das Übersetzen von Inhalten bei Bedarf hat folgende 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 Stapel

Warteschlange: Sammle Übersetzungsanfragen

Stapel: Verarbeite mehrere Übersetzungen zusammen

Cache: Speichere Ergebnisse zur Wiederverwendung

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

Warteschlangen-Struktur

Warteschlangen-Datei

Ort: JSON-Datei auf der Festplatte

Format: Array von Übersetzungsanfragen

Felder:

  • text: Englischer Text zur Übersetzung

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

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

  • priority: Hoch/normal/niedrig

Hinzufügen zur Warteschlange

Wenn eine Übersetzung fehlt:

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

Deduplizierung: Prüfen, ob bereits in der Warteschlange

Validierung: Ablehnen von ungültigen Werten

Stapelverarbeitung

Skript

Ort: scripts/web/process_translation_queue.py

Zeitplan: Läuft alle 6 Stunden via cron

Lock-Datei: Verhindert gleichzeitige Ausführungen

Ablauf

1. Warteschlange laden: Alle ausstehenden Anfragen lesen

2. Nach Sprache gruppieren: Anfragen derselben Sprache stapeln

3. Deduplizieren: Duplikate innerhalb des Stapels entfernen

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

5. Stapel übersetzen: An DeepSeek API senden

6. Ergebnisse parsen: Übersetzungen aus der Antwort extrahieren

7. Im Cache speichern: In Phrasentabellen speichern

8. Warteschlange leeren: Verarbeitete Anfragen entfernen

Stapelübersetzung

API-Aufruf

Modell: DeepSeek-V3 (via Together.ai)

System-Prompt: Gecached (für alle Stapel in einer Sprache gleich)

User-Prompt: Variabel (stapelspezifisch)

Format: Nummerierte Liste

Beispiel:

Übersetze diese 10 Texte:
1. Mini PC
2. Thin Client
3. Compact Desktop
...

Antwort:

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

Parsing

Extrahiere Übersetzungen anhand der Zeilennummer:

  • Nummernpräfix entfernen (1., 2., etc.)

  • Anhand der Position den Originaltexten zuordnen

  • Prüfen, ob die Anzahl übereinstimmt

Fehlerbehandlung

API-Fehler: Wiederholung mit Fallback-API

Parse-Fehler: Originaltexte zurückgeben

Teilweiser Erfolg: Erfolgreiche Übersetzungen speichern, Fehlgeschlagene erneut in die Warteschlange stellen

Caching-Strategie

Phrasentabellen

Ort: JSON-Dateien pro Sprache

Format: {"Englisch": "Übersetzung"}

Laden: Einmal beim Start geladen

Vorteil: Schnelle Lookups, keine API-Aufrufe

Cache-Trefferquote

Erster Durchlauf: Niedrig (alles neu)

Folgedurchläufe: Hoch (die meisten Texte gecached)

Vorteil: Geringere API-Kosten

Erhaltungsregeln

Während der Übersetzung erhalten 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: Zeichensatz-Analyse

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

Zeitplanung

Cron-Job

Häufigkeit: Alle 6 Stunden

Befehl: python3 scripts/web/process_translation_queue.py

Lock-Datei: /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:

  • Gesamtanfragen

  • Anfragen pro Sprache

  • Alter der ältesten Anfrage

Alarm: Wenn die Warteschlange zu groß wird

Übersetzungsstatistiken

Verarbeitung verfolgen:

  • Übersetzungen pro Stapel

  • API-Erfolgsquote

  • 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 Stapelverarbeitung:

Warteschlange:

  • ✅ Sammle Übersetzungsanfragen

  • ✅ Dedupliziere innerhalb des Stapels

  • ✅ Prioritätsbehandlung

  • ✅ Validierung und Filterung

Stapelverarbeitung:

  • ✅ Nach Sprache gruppieren

  • ✅ An DeepSeek API senden

  • ✅ Nummerierte Antworten parsen

  • ✅ In Phrasentabellen speichern

Caching:

  • ✅ Cache vor Übersetzung prüfen

  • ✅ Hohe Cache-Trefferquote

  • ✅ Geringere API-Kosten

Zeitplanung:

  • ✅ Alle 6 Stunden via cron

  • ✅ Lock-Datei verhindert gleichzeitige Ausführungen

  • ✅ Wöchentliche Artikelübersetzungen

Erhaltung:

  • ✅ Markennamen

  • ✅ HTML-Tags

  • ✅ URLs und SKUs

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


← Zurück zum Dokumentationsindex