Miért nem elég a szép szöveg?
Mert amit el akarsz vele kezdeni, az általában nem olvasás. Táblázatba akarod tenni, e-mailbe illeszteni, rendszerbe tölteni, összesíteni. Egy folyó szövegből ez kézi munka — egy táblázatból másolás.
A formátumkérés a legolcsóbb javítás, amit egy prompton végezhetsz: egy mondat, és a kimenet használhatóvá válik. Az Egy működő prompt felépítése cikk ezért sorolja a formátumot az öt alapelem közé.
Az első szint: megkéred rá
Chatfelületen ennyi van, és a legtöbb feladathoz elég.
Mondd meg a formát, a méretet és a mezőket:
Add vissza táblázatban. Oszlopok: tétel, mennyiség, nettó ár, határidő. Ha egy adat nem szerepel az anyagban, írj oda kötőjelet.
Ha indoklást is kérsz a mezők mellé, arról a Chain-of-thought cikk szól. Az utolsó mondat viszont a fontos. Enélkül a hiányzó adat helyére a modell kitalál valamit, mert a táblázat formája azt kívánja, hogy legyen ott érték. A hallucináció egyik legalattomosabb formája ez: nem a szövegben jelenik meg, hanem egy cellában, ahol pont nem számítasz rá.
Ami ezen a szinten megbízhatóan megy: a szerkezet. Hány oszlop, milyen sorrendben, felsorolás vagy bekezdés. Ami nem: a pontos szószám, mert a modell nem tudja előre, hol fog kilyukadni .
A második szint: JSON, hogy gép is olvassa
Ha az eredményt nem te olvasod, hanem egy másik program, akkor JSON kell — ez egy egyszerű, gépi olvasásra való formátum, ahol minden adatnak neve van.
Chatfelületen is kérheted, és nagyjából működni fog. Két tipikus baj van vele:
A modell körbebeszéli. „Természetesen, íme a kért JSON:" — és a program, ami feldolgozná, ezen elhasal. Megoldás: kérd ki külön, hogy csak a JSON legyen a válasz, semmi más.
Néha nem érvényes. Hiányzik egy zárójel, vagy más nevet ad egy mezőnek, mint tegnap. Ez nem ritka hiba, hanem a működés természetes ingadozása.
Ez utóbbin sokat javít, ha a temperature alacsonyan van. Ha egy automatizált folyamat néha rossz formátumban ad vissza adatot, először ezt vedd le, mielőtt a promptot kezded átírni.
A harmadik szint: kikényszerített séma
API-n van egy lehetőség, ami a chatfelületen nincs: megadhatod előre a szerkezetet, és a rendszer garantálja, hogy a válasz betartja.
Két különböző dolgot érdemes szétválasztani, mert a nevük hasonlít:
- JSON mode — annyit garantál, hogy a kimenet érvényes JSON lesz. Azt nem, hogy a te mezőid lesznek benne.
- Structured output — te adod meg a sémát, és a válasz ahhoz igazodik: ezek a mezők, ilyen típussal, ebben a szerkezetben.
A kettő közül a második a hasznos, és a szolgáltatók saját ajánlása is az, hogy ahol elérhető, azt használd. A különbség a gyakorlatban az, hogy nem kell utólag ellenőrizni és újrapróbálni: ha a séma megvan, a mezők ott lesznek.
Ez az a pont, ahol a promptolásból fejlesztés lesz. De érdemes tudni róla akkor is, ha nem te fogod megcsinálni — mert ha egy fejlesztőnek azt mondod, „néha rossz formátumban jön vissza", ez lesz a válasza.
Mit adj meg a sémában vagy a formátumkérésben?
Négy dolgot, ebben a sorrendben:
- Mezőnév. Pontosan úgy, ahogy a másik rendszer várja. Ne „ár", ha ott
netto_ara neve. - Típus. Szám, szöveg, dátum, igen/nem. A dátumnál a formátumot is:
ÉÉÉÉ-HH-NN. - Megengedett értékek, ha zárt a lista. „kategória: számlázás | szállítás | panasz | egyéb" — enélkül a modell kitalál egy hatodik kategóriát.
- Mi legyen a hiányzó adattal. Üres szöveg,
null, kötőjel — de legyen megmondva.
Egy példa, ami mindhárom szintet megmutatja
Feladat: beérkezett számlákból adatot kinyerni.
Első szint, chatben: „Olvasd ki a számláról a számlaszámot, a kelt dátumot, a nettó összeget és a fizetési határidőt. Táblázatban add vissza. Amit nem olvasol tisztán, jelöld [nem olvasható]." Egy-két számlához tökéletes.
Második szint: ugyanez JSON-ban kérve, hogy be lehessen tölteni. Havi néhány tucat számlánál működik, de számítani kell rá, hogy néha kézzel kell javítani.
Harmadik szint: séma, kikényszerítve, alacsony temperature-rel. Napi több százas darabszámnál ez az egyetlen, ami mellett nem kell mindent végignézni.
A választ nem a technológia adja meg, hanem a darabszám. Erről szól az Alkalmas rá az AI?cikk negyedik kérdése.
Amit érdemes elvinni
Mondd meg a szerkezetet, és mondd meg, mi legyen a hiánnyal. Ez a két mondat viszi el a munka nagy részét. A kikényszerített séma ennél megbízhatóbb, de csak akkor kell, ha annyi tétel megy át a folyamaton, hogy a kézi ellenőrzés már nem fér bele.