Lång kontext JSON-översättning med ChatGPT
Lär dig hur du använder den senaste ChatGPT-modellen och JSON-läge för att översätta ett JSON-objekt med lång kontext och strömma tillbaka utdata till JSON.
Lär dig hur du använder den senaste ChatGPT-modellen och JSON-läge för att översätta en JSON-fil med lång kontext och strömma tillbaka utdata till JSON.
Introduktion
Det har gått ett tag sedan vårt senaste inlägg Effektiv internationalisering med ChatGPT, där vi visade hur man använder ChatGPT för att översätta ett JSON-objekt. Eftersom modellen har utvecklats har översättningsmöjligheterna förbättrats avsevärt med ett längre kontextfönster, ökat max antal utmatningstokens och nya funktioner som JSON-läge som gör utvecklarens upplevelse ännu bättre.
Ökat max antal utmatningstokens
Låt oss se en snabb jämförelse av de senaste två versionerna av modellen:
Modell | Beskrivning | Kontextfönster | Max utmatningstokens | Träningsdata |
---|---|---|---|---|
gpt-4o-2024-05-13 | gpt-4o pekar för närvarande på denna version. | 128 000 tokens | 4 096 tokens | Upp till okt 2023 |
gpt-4o-2024-08-06 | Senaste ögonblicksbild som stöder strukturerade utdata | 128 000 tokens | 16 384 tokens | Upp till okt 2023 |
Den mest betydande förändringen är ökningen av maximalt antal utmatningstokens från 4 096 till 16 384, vilket passar översättningsscenariot perfekt eftersom utdatan för översättningen vanligtvis har ungefär samma längd eller mer än indatan. Samtidigt gick priset till och med ner, jämfört med den tidigare 32K token-modellen (den var dyr).
JSON-läge
Som namnet antyder är JSON-läge mycket användbart när du vill säkerställa att utdatan är ett giltigt JSON-objekt. För den nya modellen kan du till och med definiera schemat för utdata JSON-objektet med strukturade utdata.
Kom igång
Initiering
Vi använder OpenAIs Node.js SDK v4.56.0 i detta inlägg för demonstration. Känn dig fri att använda någon annan metod eller språk du föredrar.
Först måste vi initiera OpenAI-klienten:
Jag rekommenderar starkt att använda strömningsläget för långkontextöversättning, eftersom det är mer effektivt och du behöver inte vänta länge för att få utdata (till exempel en minut för en begäran). Koden kommer att se ut så här:
Låt oss skriva några uppmaningar
Vi kan använda system
rollen för att instruera modellen för dess jobb:
Kom ihåg att ersätta "es" med din mål-locale-kod. Enligt vår erfarenhet finns det flera instruktioner som vi behöver säga modellen för bättre utdata och mindre mänsklig intervention:
Du kanske undrar varför vi behöver den sista instruktionen. Detta är förklaringen från OpenAI:
När du använder JSON-läge måste du alltid instruera modellen att producera JSON genom något meddelande i konversationen, till exempel genom ditt systemmeddelande. Om du inte inkluderar en explicit instruktion att generera JSON kan modellen generera en oändlig ström av blanksteg och förfrågan kan köras kontinuerligt tills den når token-gränsen.
Med ovanstående instruktioner kan vi lägga JSON-objektet som ska översättas i följande meddelande med user
rollen. Låt oss komponera vad vi har hittills:
Hantera utdatan
Eftersom vi använder strömningsläget, måste vi hantera utdatan med strömningsstil. Här är ett exempel:
Slutsats
Det var allt! Med den nya ChatGPT-modellen har effektiviteten för JSON-översättning ytterligare förbättrats, och översättningskvaliteten är också bättre. Jag hoppas att detta inlägg hjälper dig att få nya insikter om ChatGPT och JSON-översättning. Ses i nästa inlägg!