Strukturált (JSON) kimenet megbízható kérése

Dióhéjban
- A strukturált kimenet géppel feldolgozható, előre rögzített mezőkbe rendezett adat.
- Add meg pontosan a mezőneveket, a típusokat és egy mintapéldát.
- Kérd egyértelműen, hogy a válasz csak a strukturált adatot tartalmazza.
- Kezeld előre a hiányzó adatok esetét, hogy a szerkezet stabil maradjon.
- Emberi olvasásra szánt válasznál a szabad szöveg gyakran jobb választás.
A strukturált kimenet kérése azt jelenti, hogy a modell nem szabad szöveget, hanem előre meghatározott szerkezetű adatot ad vissza, jellemzően JSON formátumban. Így a válasz géppel is feldolgozható, bemenete lehet egy másik programnak vagy táblázatnak. A megbízhatóság kulcsa, hogy pontosan leírod a kívánt szerkezetet, a mezőneveket és az egyes mezők típusát.
Mi az a strukturált kimenet?
A strukturált kimenet olyan válasz, amely egy előre rögzített szerkezetet követ, ahol minden adat egy meghatározott mezőben, meghatározott formában szerepel. A leggyakoribb formátum a JSON, ahol kulcs-érték párok és listák építik fel az adatot, de lehet táblázat vagy más rendezett forma is.
A szabad szöveggel szemben itt nem az olvashatóság az elsődleges, hanem a gépi feldolgozhatóság. Ha a modell mindig ugyanazokat a mezőneveket és ugyanazt a szerkezetet adja vissza, akkor a válasz közvetlenül betölthető egy rendszerbe, elmenthető adatbázisba vagy tovább dolgozható más eszközzel.
A strukturált kimenet a modellt egy szabad szövegíróból megbízható adatforrássá teszi. Ez a különbség teszi lehetővé, hogy a nyelvi modelleket ne csak beszélgetésre, hanem automatizált munkafolyamatok részeként is használjuk, ahol a válaszra egy másik lépés épül.
Miért éri meg strukturált kimenetet kérni?
A strukturált kimenet azért értékes, mert kiszámíthatóvá teszi a választ. Ha tudod, hogy mindig ugyanazok a mezők érkeznek, nem kell minden alkalommal kézzel kibányászni az adatot a szövegből. A feldolgozás automatizálható, és sokkal kevesebb hibalehetőség marad.
A rendezett forma csökkenti a félreértést is. A szabad szövegben a fontos adat elrejtőzhet egy hosszú mondatban, vagy kétértelműen szerepelhet. Egy JSON-mezőben viszont egyértelmű, mi az érték és mihez tartozik, így a kimenet önmagában is világos.
A strukturált kimenet nyit kaput az automatizálás felé. Ha a modell válasza megbízhatóan géppel olvasható, akkor beépíthető nagyobb folyamatokba: adatot tölthet fel, jelentést generálhat, vagy egy következő lépés bemenetévé válhat emberi közreműködés nélkül.

Hogyan kérj megbízhatóan JSON-kimenetet?
Először írd le pontosan a kívánt szerkezetet. Add meg a mezőneveket, mindegyikhez a várt típust és egy rövid magyarázatot arról, mit tartalmazzon. A legjobb, ha egy konkrét mintapéldát is mutatsz a kívánt kimenetről, mert a modell mintából tanul a leggyorsabban.
Másodszor mondd ki egyértelműen, hogy a válasz kizárólag a strukturált adatot tartalmazza, magyarázó szöveg, bevezető vagy záró megjegyzés nélkül. Sok pontatlanság abból ered, hogy a modell udvariasan körülírja a választ, amivel elrontja a gépi feldolgozhatóságot.
Harmadszor kezeld a hiányzó adatok esetét. Add meg, mi legyen egy mező értéke, ha az információ nem áll rendelkezésre, például üres érték vagy egy megadott jelölés. Így a szerkezet akkor is stabil marad, ha a bemenet nem tartalmaz minden adatot.
Miben segít a jelölőnyelvi keret?
A címkékkel elkülönített szakaszok segítenek a modellnek pontosan megérteni, hol kezdődik és hol ér véget a strukturált rész. Ha a promptban világosan elkülöníted az utasítást, a mintapéldát és a feldolgozandó bemenetet, a modell sokkal ritkábban keveri össze ezeket.
A keretes szerkezet a hosszú bemeneteknél különösen hasznos. Ha egy nagy szövegből kell adatot kinyerni, a bemenetet érdemes egyértelműen jelölt szakaszba tenni, hogy a modell tudja, pontosan mit kell feldolgoznia, és mi az utasítás.
A jelölőnyelvi keret ráadásul olvashatóbbá teszi magát a promptot is. Ha te is világosan látod a prompt részeit, könnyebb karbantartani és finomítani, és kisebb az esélye, hogy egy módosítás véletlenül elrontja a szerkezetet.
Példa: adatkinyerés strukturált formába
Tegyük fel, hogy egy állásjelentkezésből szeretnél kulcsadatokat. A prompt megadja a szerkezetet: "Add vissza a jelentkező adatait JSON-ban, a következő mezőkkel: nev (szöveg), evek_tapasztalat (szám), fo_keszsegek (szöveglista), kapcsolat_email (szöveg vagy üres, ha nincs)."
A prompt egy rövid mintapéldát is mutat a kívánt kimenetről, majd egyértelműen jelzi: "Csak a JSON-t add vissza, semmilyen más szöveget ne írj mellé." A feldolgozandó önéletrajzot pedig egy jól elkülönített, jelölt szakaszba helyezed.
A modell így minden alkalommal ugyanazt a szerkezetet adja vissza, amit egy táblázat vagy egy program közvetlenül be tud olvasni. Ahol egy adat hiányzik, ott az előre megadott üres érték szerepel, tehát a szerkezet akkor is stabil marad, ha a bemenet hiányos.
Gyakori hibák a strukturált kimenetnél
A leggyakoribb hiba a hiányos szerkezetleírás. Ha csak annyit kérsz, hogy "adj JSON-t", a modell maga találja ki a mezőneveket, és ezek futásonként változhatnak. Mindig add meg pontosan a mezőket, a típusokat és egy mintapéldát.
Másik tipikus probléma, hogy a modell magyarázó szöveget fűz a strukturált adat elé vagy mögé. Ez elrontja a gépi feldolgozást, mert a válasz már nem tiszta JSON. Ezt egyértelmű utasítással kell megelőzni: csak a strukturált adat érkezzen.
Harmadik hiba a hiányzó adatok kezelésének elmulasztása. Ha nem mondod meg, mi legyen egy üres mező értéke, a modell kihagyhatja a mezőt, vagy szabad szöveggel tölti ki. Ettől a szerkezet futásonként eltér, és a feldolgozás megbízhatatlanná válik.
Mikor NE erőltess strukturált kimenetet?
Ne kérj strukturált kimenetet olyankor, amikor a válasz úgyis emberi olvasásra készül, és nincs gépi feldolgozás mögötte. Egy magyarázatnál, egy tanácsnál vagy egy fogalmazásnál a szabad szöveg természetesebb és jobban olvasható.
Kerüld a strukturálást akkor is, ha a tartalom lényege éppen a folyamatos, összefüggő gondolatmenet. Ha egy elemzés érvei szorosan egymásra épülnek, a mezőkre darabolás megtöri a logikát, és a lényeg elveszik a szerkezetben.
Végül ne bonyolítsd túl a szerkezetet. Egy mélyen egymásba ágyazott, sok szintű forma nehezebben tölthető ki hibátlanul, és növeli a hibalehetőséget. Tartsd a szerkezetet olyan egyszerűnek, amennyire a feladat engedi.

Hogyan tedd ezt megismételhetővé?
Készíts egy sablont a visszatérő adatkinyerési feladataidhoz, a rögzített szerkezetleírással és a mintapéldával együtt. Így legközelebb csak a feldolgozandó bemenetet cseréled, a szerkezet pedig garantáltan azonos marad minden futásnál.
Teszteld a sablont többféle bemeneten, köztük hiányos és szokatlan eseteken is. Ha látod, hogy a szerkezet minden esetben tartja magát, megbízhatóan építhetsz rá automatizált lépéseket, akár emberi ellenőrzés nélkül is.
A promptx.hu több strukturált kimenetre tervezett csomagja eleve tartalmazza a pontos szerkezetleírást és a hiányzó adatok kezelését. Egy jól összeállított sablon megmutatja, milyen mezőket és milyen leírást érdemes megadni az adott feladattípusnál.
Mit tegyél, ha a modell érvénytelen JSON-t ad?
Még pontos utasítás mellett is előfordul, hogy a modell hibás vagy hiányos JSON-t ad vissza, például egy lezáratlan zárójellel vagy egy fölösleges magyarázó mondattal a struktúra előtt. Ezért a strukturált kimenetet fogadó folyamatba mindig építs be egy ellenőrző lépést, amely megvizsgálja, hogy a válasz valóban értelmezhető, feldolgozható adat-e.
Az érvénytelen kimenet leggyakoribb oka a kísérőszöveg. Ha a promptban kifejezetten kéred, hogy a válasz kizárólag a JSON legyen, magyarázat és bevezető nélkül, a hibák nagy része megszűnik. Sokat segít az is, ha megmutatsz egy pontos mintát a kívánt szerkezetről, mert a modell így a formát is másolja, nem csupán a tartalmat állítja elő.
Ha a hiba mégis előfordul, a legegyszerűbb megoldás az újrakérés a hiba jelzésével együtt, tehát megkéred a modellt, hogy javítsa ki az előző, érvénytelen választ. A modell rendszerint azonnal korrigál. Kritikus rendszerben érdemes automatikus újrapróbálkozást beállítani, hogy egyetlen hibás válasz se akassza meg a teljes folyamatot.
Érdemes a kért mezőket a szükséges minimumra szűkíteni. Minél egyszerűbb a szerkezet, annál kisebb az esély a hibára, és annál könnyebb feldolgozni a kimenetet. A túl bonyolult, mélyen egymásba ágyazott struktúrát a modell nehezebben tartja pontosan, ezért a lapos, átlátható forma megbízhatóbb.
Hasznos forrás
A prompt részeinek elkülönítéséről és a megbízható, szerkezetes kimenetről részletesen olvashatsz az Anthropic hivatalos útmutatójában a jelölőcímkék használatáról. az Anthropic útmutatója a jelölőcímkék használatáról.
Gyakran ismételt kérdések
Miért kapok néha nem érvényes JSON-t?
Jellemzően azért, mert a modell magyarázó szöveget fűz a válaszhoz, vagy nem elég pontos a szerkezetleírás. Segít, ha egyértelműen kéred, hogy csak a JSON érkezzen, megadsz egy mintapéldát, és a szerkezetet egyszerűen tartod.
Kell mintapéldát adnom a promptban?
Erősen ajánlott. A modell mintából tanulja meg a leggyorsabban a kívánt szerkezetet. Egy rövid, kitöltött mintapélda sokkal megbízhatóbbá teszi a kimenetet, mint a puszta mezőfelsorolás.
Mit tegyek, ha egy adat hiányzik a bemenetből?
Add meg előre, mi legyen ilyenkor a mező értéke, például üres érték vagy egy megadott jelölés. Így a szerkezet akkor is stabil marad, ha a bemenet hiányos, és a feldolgozás nem borul fel.
Kell programozni tudni a strukturált kimenethez?
A kimenet kéréséhez nem. A promptban egyszerű nyelven leírod a kívánt szerkezetet. Programozás akkor jön képbe, ha a kapott JSON-t automatikusan tovább dolgoznád, de maga a kérés kód nélkül is működik.
Melyik formátumot válasszam?
Ha gépi feldolgozás követi, a JSON a legelterjedtebb és legjobban kezelhető. Ha ember olvassa, egy táblázat is jó lehet. A lényeg, hogy a szerkezet előre rögzített és minden futásnál azonos legyen.
Működik ez minden modellnél?
Igen, a strukturált kimenet kérése modellfüggetlen. A ChatGPT, a Claude és a Gemini mind képes rá, ha pontos szerkezetleírást és mintapéldát adsz. A megbízhatóság inkább a prompt minőségén múlik, mint a modellen.
Vágj bele kész promptokkal
Több mint 225 prompt csomag vár, azonnali letöltéssel.
Prompt csomagok böngészése