Ü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
-
Übersetzungssystem - Drei-Technologien-Hybrid
-
Content AI Generation - DeepSeek-Integration
-
Spracherkennung - Benutzersprache-Präferenz
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.