Lange-context JSON vertaling met ChatGPT
Leer hoe je het nieuwste ChatGPT-model en JSON-modus gebruikt om een JSON-object met lange context te vertalen en de uitvoer terug naar JSON te streamen.
Leer hoe je het nieuwste ChatGPT-model en JSON-modus gebruikt om een JSON-bestand met lange context te vertalen en de uitvoer terug naar JSON te streamen.
Introductie
Het is een tijdje geleden sinds onze laatste post Efficiënte internationalisatie met ChatGPT, waarin we toonden hoe je ChatGPT gebruikt om een JSON-object te vertalen. Aangezien het model is geëvolueerd, zijn de vertaalmogelijkheden aanzienlijk verbeterd met een langer contextvenster, verhoogde maximale uitvoertokens en nieuwe functies zoals JSON-modus die de ontwikkelaarservaring nog beter maken.
Verhoogde maximale uitvoertokens
Laten we een snelle vergelijking maken van de laatste twee versies van het model:
Model | Beschrijving | Contextvenster | Max uitvoertokens | Trainingsdata |
---|---|---|---|---|
gpt-4o-2024-05-13 | gpt-4o wijst momenteel naar deze versie. | 128.000 tokens | 4.096 tokens | Tot oktober 2023 |
gpt-4o-2024-08-06 | Laatste snapshot die gestructureerde uitvoer ondersteunt | 128.000 tokens | 16.384 tokens | Tot oktober 2023 |
De meest significante verandering is de verhoging van de maximale uitvoertokens van 4.096 naar 16.384, wat perfect past bij het vertaalscenario aangezien de uitvoer van de vertaling meestal ongeveer dezelfde lengte heeft of langer is dan de invoer. Ondertussen is de prijs zelfs gedaald, vergeleken met het vorige 32K tokenmodel (het was duur).
JSON-modus
Zoals de naam al doet vermoeden, is JSON-modus zeer nuttig wanneer je wilt verzekeren dat de uitvoer een geldig JSON-object is. Voor het nieuwe model kun je zelfs het schema van het uitvoer JSON-object definiëren met behulp van Gestructureerde Uitvoer.
Aan de slag
Initialisatie
We zullen OpenAI's Node.js SDK v4.56.0 in deze post gebruiken ter demonstratie. Voel je vrij om elke andere methode of taal te gebruiken die je prefereert.
Eerst moeten we de OpenAI-client initialiseren:
Ik raad sterk aan om de streamingmodus te gebruiken voor vertaling met lange context, aangezien het efficiënter is en je niet lang hoeft te wachten om de uitvoer te krijgen (bijvoorbeeld een minuut voor één verzoek). De code zal er als volgt uitzien:
Laten we enkele prompts schrijven
We kunnen de system
rol gebruiken om het model zijn taak te instrueren:
Vergeet niet "es" te vervangen door je doellocatie code. Volgens onze ervaring zijn er verschillende instructies die we aan het model moeten geven voor een betere output en minder menselijke interventie:
Je vraagt je misschien af waarom we de laatste instructie nodig hebben. Dit is de uitleg van OpenAI:
Bij het gebruik van JSON-modus moet je het model altijd instrueren om JSON te produceren via een bericht in de conversatie, bijvoorbeeld via je systeembericht. Als je geen expliciete instructie opneemt om JSON te genereren, kan het model een eindeloze stroom van witruimte genereren en kan het verzoek doorgaan totdat het de tokenlimiet bereikt.
Met de bovenstaande instructies kunnen we het te vertalen JSON-object in het volgende bericht met de user
rol zetten. Laten we samenstellen wat we tot nu toe hebben:
De uitvoer verwerken
Aangezien we de streamingmodus gebruiken, moeten we de uitvoer afhandelen met de streamingstijl. Hier is een voorbeeld:
Conclusie
Dat is het! Met het nieuwe ChatGPT-model is de efficiëntie van JSON-vertaling verder verbeterd en de vertaalkwaliteit is ook beter. Ik hoop dat deze post je helpt om nieuwe inzichten te krijgen over ChatGPT en JSON-vertaling. Tot de volgende post!