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.
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:
Modell | Beschreibung | Kontextfenster | Maximale Anzahl von Ausgabetokens | Trainingsdaten |
---|---|---|---|---|
gpt-4o-2024-05-13 | gpt-4o zeigt derzeit auf diese Version. | 128.000 Tokens | 4.096 Tokens | Bis Okt 2023 |
gpt-4o-2024-08-06 | Neuester Snapshot, der strukturierte Ausgaben unterstützt | 128.000 Tokens | 16.384 Tokens | Bis 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!