Miért a prompt a rendszer alapja
Egy architekt szemével a prompt nem szöveges kérés, hanem a rendszer egyik interfésze. Amit a modellnek átadunk, az meghatározza, mennyire kiszámítható a válasz, és így mennyire lehet rá építeni a folyamat többi részét. Ha a prompt homályos, a modell értelmezi a hiányzó részt, és minden futásnál másképp értelmezheti. Ha viszont a prompt világos, konkrét és felépített, akkor a válasz is stabil marad. A promptból lesz a rendszer, ezért ugyanolyan gonddal érdemes megtervezni, mint bármely más komponenst, amelyre később a láncban támaszkodunk.
A rendszerprompt szerepe
A rendszerprompt az a rész, amely az egész beszélgetés keretét kijelöli. Itt adjuk meg, milyen szerepet töltsön be a modell, milyen hangnemben és milyen korlátok között dolgozzon, és mit tegyen, ha valami hiányzik vagy bizonytalan. A felhasználói üzenet a konkrét feladatot hozza, a rendszerprompt viszont az állandó szabályokat rögzíti, amelyek minden feladatnál érvényben maradnak. Egy jól megírt rendszerprompt olyan, mint egy munkaköri leírás. Nem az adott ügyet oldja meg, hanem meghatározza, ki dolgozik az ügyön és milyen elvek szerint. Egy architektnek ez azért fontos, mert a rendszerpromptba tett szabály minden hívásra kihat, így ide kerül minden, ami nem az egyedi bemenettől függ.
Világos és konkrét utasítás, szereppel és példákkal
A megbízható prompt néhány visszatérő elemből áll össze. Az első a világos és konkrét utasítás. Ne azt írjuk, hogy dolgozd fel az adatot, hanem azt, pontosan mit tekintünk feldolgozásnak, milyen mezőket kell kinyerni és mi történjen, ha egy mező hiányzik. A második a szerep megadása. Ha a modellnek megmondjuk, hogy tapasztalt ügyféltámogatási elemzőként járjon el, a válasz nézőpontja és részletessége ehhez a szerephez igazodik. A harmadik a példák ereje, amelyet few-shot megközelítésnek hívunk. Ha megmutatunk néhány mintát arról, hogy egy bemenetre milyen kimenet a helyes, a modell ezt a mintát követi. A példa gyakran többet ér, mint a leghosszabb magyarázat, mert a modell a mintából olvassa ki, mit várunk tőle. Az alábbi lépéssor a jó prompt fő elemeit foglalja össze.
- Világos, konkrét utasításPontosan leírjuk, mi a feladat, milyen mezőket kell kinyerni, és mi történjen hiányzó adat esetén.
- Szerep megadásaMegmondjuk, milyen szakértői nézőpontból dolgozzon a modell, ez alakítja a válasz mélységét és hangnemét.
- Példák, few-shotNéhány bemenet és a hozzá tartozó helyes kimenet megmutatja a mintát, amit a modell követni fog.
- XML címkék a bemenetenA feladat, a kontextus és a példák elkülönített szakaszokba kerülnek, így a modell nem keveri össze őket.
- Gondolatmenet, majd válaszElőbb kérjük a modell mérlegelését, csak utána a végleges, formázott választ.
XML címkék a bemenet strukturálására
Ahogy a prompt hosszabb lesz, egyre nehezebb elkülöníteni benne az utasítást, a beillesztett adatot és a példákat. Itt segítenek az XML címkék. A Claude különösen jól reagál rájuk, mert a nyitó és záró címke egyértelműen jelzi, hol kezdődik és hol végződik egy szakasz. Ha a beillesztett ügyféladatot egy címkével keretezzük, a modell tudni fogja, hogy az adat, nem pedig újabb utasítás, így egy beillesztett szöveg nem tudja véletlenül felülírni a feladatot. A címkék neve szabadon választható, a lényeg a következetesség. Ha egyszer bevezettünk egy megnevezést a bemenetre, ugyanazt használjuk mindenütt, és a promptban is arra a névre hivatkozunk. Ez a szerkezet teszi a hosszú promptot is átláthatóvá, és megkönnyíti, hogy később a láncban más elemek is ugyanezt a keretezést használják.
A gondolatmenet kérése
Összetettebb feladatoknál sokat segít, ha a modell előbb gondolkodik, és csak utána válaszol. Ha megkérjük, hogy először mérlegelje a szempontokat, vegye számba a lehetőségeket, és csak ezt követően adja meg a végeredményt, a válasz megalapozottabb lesz, mert a modell a saját érvelésére támaszkodhat. Ennek a rendszer szempontjából van egy fontos következménye. A gondolatmenetet és a végleges választ szét kell tudni választani, mert a rendszer többi része a végeredményt akarja használni, nem az odáig vezető mérlegelést. Ezért a gondolkodást egy elkülönített szakaszba tesszük, a géppel feldolgozandó választ pedig egy másikba. Így a modell szabadon gondolkodhat, a folyamat viszont csak azt a részt olvassa ki, amelyre valóban szüksége van.
A strukturált kimenet
Eddig arról volt szó, hogyan adjuk át jól a feladatot. A másik oldal legalább ilyen fontos: milyen formában kérjük vissza a választ. Strukturált kimenetről akkor beszélünk, amikor a modelltől nem szabad szöveget várunk, hanem egy meghatározott, gépileg feldolgozható formátumot, jellemzően JSON-t, előre rögzített mezőkkel. A különbség éles. A szabad szöveges válasz embernek olvasható, de a rendszer nehezen dolgozza fel, mert minden futásnál kicsit másképp fogalmazhat. A strukturált kimenetben viszont mindig ugyanazok a mezők, ugyanazon a néven szerepelnek, így a folyamat következő lépése megbízhatóan ki tudja olvasni belőle a szükséges értékeket. Egy architektnek ez a döntő pont, mert a strukturált kimenet az, ami a modell válaszát megbízható rendszer-elemmé teszi.
Hogyan kényszerítjük ki a strukturált kimenetet
A strukturált kimenet nem magától jön létre, kérni kell, méghozzá egyértelműen. Több eszköz áll rendelkezésre, és ezek együtt a leghatékonyabbak. Az első a pontos formátum-leírás. Írjuk le szabatosan, milyen mezőket várunk, milyen néven, milyen típusban, és mi legyen az értékük, ha egy adat hiányzik. A második egy konkrét példa a kívánt kimenetre. Ha megmutatjuk, pontosan hogyan nézzen ki egy helyes válasz, a modellnek nem kell találgatnia a formát. A harmadik a válasz elejének előtöltése. Ha a modell válaszát egy nyitó karakterrel indítjuk, például egy JSON kezdő zárójelével, azzal ténylegesen ráállítjuk a strukturált formátumra, és kisebb az esély, hogy bevezető mondattal vagy magyarázattal kezdjen. Végül érdemes kimondani, hogy a válasz kizárólag a kért formátumot tartalmazza, minden bevezető vagy záró szöveg nélkül, mert a rendszer csak a tiszta struktúrát tudja feldolgozni.
Szabad szöveges válasz
- Embernek jól olvasható
- Minden futásnál más a fogalmazás
- A rendszer nehezen olvassa ki
- Nincs garantált szerkezet
Strukturált kimenet
- Mindig ugyanazok a mezők
- Gépileg megbízhatóan feldolgozható
- A lánc következő lépése rá tud épülni
- Előre rögzített, kiszámítható forma
Egy magyar céges példa
Vegyünk egy képzeletbeli budapesti webáruházat, a Kertbarát Kft.-t, ahol naponta sok ügyfélüzenet érkezik. A cél, hogy minden bejövő üzenet automatikusan a megfelelő csapathoz kerüljön. A rendszerpromptban rögzítik a szerepet, hogy a modell ügyféltámogatási osztályozóként dolgozzon, és a szabályt, hogy bizonytalan esetben az általános ügyfélszolgálatot jelölje meg. A felhasználói üzenetben XML címkével keretezik magát a beérkezett levelet, mellé néhány példát tesznek arról, milyen üzenet melyik részleghez tartozik. Megkérik a modellt, hogy előbb egy elkülönített szakaszban mérlegeljen, majd a végén adjon vissza egy JSON-t három mezővel: a prioritás, a hangulat és a felelős részleg. A választ egy nyitó zárójellel előtöltik, és kikötik, hogy a JSON-on kívül semmi más ne szerepeljen. Így minden üzenetre ugyanolyan formájú válasz érkezik, amelyet a rendszer következő lépése magától a megfelelő csapat postaládájába irányít, emberi közreműködés nélkül. Ha itt szabad szöveget kértek volna, minden üzenetnél kézzel kellene értelmezni a választ, és a folyamat nem tudna magától továbbfutni.
Három eszköz a formára. A pontos formátum-leírás, egy konkrét példa a kimenetre, és a válasz elejének előtöltése együtt teszik megbízhatóvá a strukturált kimenetet. Egyik önmagában is segít, de a három együtt adja a legstabilabb eredményt.
Miért számít ez egy architektnek
A promptolás és a strukturált kimenet azért kap külön tématerületet a felkészítőben, mert ez a kettő köti össze a modellt a rendszerrel. A jó prompt gondoskodik arról, hogy a modell a szándékunk szerint dolgozzon, a strukturált kimenet pedig arról, hogy a válasz megbízhatóan visszakerüljön a folyamatba. Egy architekt ritkán elégszik meg egyetlen jó válasszal. Olyan láncot épít, amelyben egy lépés kimenete a következő lépés bemenete lesz, és ez a láncolás csak akkor megbízható, ha a köztes válaszok kiszámítható formában érkeznek. Ezért érdemes a promptot és a kimeneti formátumot már a tervezés elején együtt átgondolni, nem utólagos igazításként. A promptból lesz a rendszer, és a strukturált kimenet az, ami az egészet stabillá és bővíthetővé teszi.
Workshop
AI Transformation Day
Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.
Érdekel a program →