Deutsch
  • chatgpt
  • ki
  • eingabeaufforderung
  • i18n

Langkontext-JSON-Übersetzung mit ChatGPT

Lerne, wie man das neueste ChatGPT-Modell und den JSON-Modus verwendet, um ein JSON-Objekt mit langem Kontext zu übersetzen und das Ergebnis wieder in JSON zu streamen.

Gao
Gao
Founder

Lerne, wie man das neueste ChatGPT-Modell und den JSON-Modus verwendet, um eine JSON-Datei mit langem Kontext zu übersetzen und das Ergebnis wieder in JSON zu streamen.

Einführung

Es ist eine Weile her seit unserem letzten Beitrag Effiziente Internationalisierung mit ChatGPT, in dem wir zeigten, wie man ChatGPT verwendet, um ein JSON-Objekt zu übersetzen. Da sich das Modell weiterentwickelt hat, wurden die Übersetzungsfähigkeiten mit einem längeren Kontextfenster, einer erhöhten maximalen Ausgabeanzahl von Tokens und neuen Funktionen wie dem JSON-Modus, der das Entwicklererlebnis noch besser macht, erheblich verbessert.

Erhöhte maximale Ausgabeanzahl von Tokens

Werfen wir einen schnellen Vergleich der letzten beiden Versionen des Modells:

ModellBeschreibungKontextfensterMaximale Anzahl von AusgabetokensTrainingsdaten
gpt-4o-2024-05-13gpt-4o zeigt derzeit auf diese Version.128.000 Tokens4.096 TokensBis Okt 2023
gpt-4o-2024-08-06Neuester Snapshot, der strukturierte Ausgaben unterstützt128.000 Tokens16.384 TokensBis Okt 2023

Die bedeutendste Änderung ist die Erhöhung der maximalen Anzahl von Ausgabetokens von 4.096 auf 16.384, was sich perfekt für das Übersetzungsszenario eignet, da die Ausgabe der Übersetzung normalerweise etwa die gleiche Länge hat oder länger ist als der Eingang. Unterdessen sind die Kosten sogar gesunken im Vergleich zum vorherigen 32K-Token-Modell (es war teuer).

JSON-Modus

Wie der Name schon sagt, ist der JSON-Modus sehr nützlich, wenn man sicherstellen möchte, dass die Ausgabe ein gültiges JSON-Objekt ist. Für das neue Modell kann man sogar das Schema des Ausgabe-JSON-Objekts mit strukturierten Ausgaben definieren.

Loslegen

Initialisierung

Wir verwenden OpenAIs Node.js SDK v4.56.0 in diesem Beitrag zur Demonstration. Du kannst gerne eine andere Methode oder Sprache verwenden, die du bevorzugst.

Zuerst müssen wir den OpenAI-Client initialisieren:

Ich empfehle dringend, den Streaming-Modus für die Übersetzung mit langem Kontext zu verwenden, da er effizienter ist und du nicht lange warten musst, bis du das Ergebnis erhältst (zum Beispiel eine Minute für eine Anfrage). Der Code sieht dann folgendermaßen aus:

Lass uns einige Eingabeaufforderungen schreiben

Wir können die system-Rolle verwenden, um das Modell für seine Aufgabe zu instruieren:

Denke daran, "es" durch deinen Ziel-Sprachcode zu ersetzen. Laut unserer Erfahrung gibt es mehrere Anweisungen, die wir dem Modell geben müssen, um eine bessere Ausgabe und weniger menschliche Eingriffe zu gewährleisten:

Du fragst dich vielleicht, warum wir die letzte Anweisung benötigen. Dies ist die Erklärung von OpenAI:

Wenn du den JSON-Modus verwendest, musst du dem Modell immer anweisen, JSON über eine Nachricht im Gespräch zu erzeugen, z.B. über deine Systemnachricht. Wenn du keine explizite Anweisung zur Erzeugung von JSON einfügst, kann es sein, dass das Modell einen unendlichen Strom von Leerzeichen generiert und die Anfrage möglicherweise kontinuierlich läuft, bis sie die Token-Grenze erreicht.

Mit den obigen Anweisungen können wir das zu übersetzende JSON-Objekt in die folgende Nachricht mit der user-Rolle einfügen. Lass uns zusammenstellen, was wir bisher haben:

Umgang mit der Ausgabe

Da wir den Streaming-Modus verwenden, müssen wir die Ausgabe im Streaming-Stil handhaben. Hier ist ein Beispiel:

Fazit

Das war's! Mit dem neuen ChatGPT-Modell wurde die Effizienz der JSON-Übersetzung weiter verbessert, und die Übersetzungsqualität ist ebenfalls besser. Ich hoffe, dieser Beitrag hilft dir, einige neue Einblicke in ChatGPT und die JSON-Übersetzung zu gewinnen. Bis zum nächsten Beitrag!