Kaj je prompt engineering? Praktičen vodnik za nerazvijalce
Prompt engineering je načrtno pisanje in izboljševanje navodil za model umetne inteligence, da zanesljivo dobite, kar želite. Prompt je vse, kar modelu damo – vprašanje, nalogo, kontekst, primere – prompt engineering pa pomeni, da premišljeno izberemo, kaj gre noter, preverimo, kaj pride ven, in prilagodimo. Ne gre toliko za čarobne fraze, bolj za jasno komunikacijo.
Zakaj je to pomembno, ko gradite z AI
Pri gradniku aplikacij z AI so vaši prompti specifikacija. AI lahko zgradi le tisto, kar opišete, in kjer vaša zahteva pušča vrzeli, jih zapolni z razumnimi ugibanji. Včasih so ugibanja dobra. Pogosto pa niso to, kar ste mislili: napačna polja v obrazcu, funkcija, ki je niste želeli, oblikovanje, ki ne ustreza vašemu občinstvu.
Jasen prompt prihrani več krogov popravkov, vsak krog pa stane čas in ponavadi tudi kredite. Prompting je pomemben tudi, če v svojo aplikacijo dodate AI: navodila, ki jih dasta temu modelu, določajo, kako se vaš klepetalni robot pogovarja s strankami, kaj zavrne in ali se drži vaših dejstev. Za gradnjo aplikacij posebej glejte kako pisati prompte za gradnike aplikacij z AI.
Vsakdanja primerjava
Predstavljajte si, da briefate spretnega samostojnega sodelavca, ki vas ne pozna, ne ve nič o vašem poslu in začne delati takoj, ko nehate govoriti.
»Naredi mi logotip« vam da nek logotip. »Logotip za plavalno šolo za otroke v Dubaju; prijazen, ne otroški; modra in oranžna; mora delovati majhen na plavalni kapici; tukaj sta dva, ki nam všečka, in en, ki ne« vam da nekaj, kar je blizu temu, kar želite.
Model AI je ta sodelavec – nadarjen, hiter in popolnoma odvisen od vašega briefa. Prompt engineering je učenje, kako napisati dober brief.
Osnovne tehnike
| Tehnika | Kaj pomeni | Primer |
|---|---|---|
| Be specific about the goal (bodite konkretni glede cilja) | Povejte, kaj želite in zakaj. | »Stran za rezervacije, kjer si nove stranke izberejo 30- ali 60-minutni termin.« |
| Give context (podajte kontekst) | Za koga je, kaj že obstaja, kaj je pomembno. | »Uporabniki so večinoma starejše stranke na telefonih.« |
| Define 'done' (opredelite »končano«) | Opišite končni rezultat. | »Končano pomeni, da stranka lahko rezervira in jaz dobim e-pošto.« |
| Set constraints (določite omejitve) | Česa ne delati in omejitve. | »Še ne dodajaj prijave. Ohrani obstoječe barve.« |
| Show examples (pokažite primere) | Podajte vzorec, kako izgleda dobro. | »Odgovor napiši v tem slogu: …« |
| Ask for a format (zahtevajte obliko) | Povejte, kako naj je rezultat strukturiran. | »Odgovori v tabeli s stolpci X, Y, Z.« |
| Break it into steps (razdelite na korake) | Pri velikih nalogah po korakih. | »Najprej podatkovni model, nato obrazec, nato e-pošta.« |
| Let it ask or plan first (naj najprej vpraša ali načrtuje) | Pred spremembami zahtevajte načrt. | »Pred gradnjo navedi svoja vprašanja in načrt.« |
| Iterate (ponavljajte in izboljšujte) | Preverite rezultat in ga izboljšajte. | »Obrazec deluje. Zdaj naredi izbirnik datuma večji.« |
Delovni primer: pred in po
Pred:
Naredi mi aplikacijo za fitnes.
AI mora vse ugibati: člani ali osebje? Skupinske vadbe ali osebni trening? Plačila? Verjetno boste dobili splošno nadzorno ploščo z izmišljenimi vadbami.
Po:
Zgradi spletno aplikacijo za majhen boks klub z okoli 150 člani.
Kdo jo uporablja: Člani rezervirajo vadbe na telefonih. Lastnik Sam upravlja urnik na prenosniku.
Člani lahko: pogledajo vadbe tega tedna (čas, trener, prosta mesta) in se prijavijo ali odjavijo do 2 uri pred začetkom.
Sam lahko: dodaja, ureja in odpoveduje vadbe ter vidi, kdo je prijavljen na posamezno.
Pravila: največ 12 oseb na vadbo. Brez dvojnih rezervacij istega termina.
Zaenkrat ne: plačila, sledenje vadbam, mobilna aplikacija.
Slog: temno ozadje, rdeči poudarki, velike površine za dotik.
Preden začnete graditi, navedite vse, kar ni jasno, in opišite strani, ki jih boste ustvarili.
Drugi prompt ni pameten; je popoln. Našteva uporabnike, dejanja, pravila, kaj pustiti ob strani in kako začeti. Zadnja vrstica AI povabi, naj načrtuje in postavi vprašanja, kar ujame nesporazume, preden je napisana koda.
Prompti v vaši aplikaciji
Ko vaša aplikacija sama kliče LLM, pišete prompte, ki se izvedejo stokrat, za mnogo uporabnikov. Enaka načela veljajo, dodajo pa se še nekatera:
- Sistemski poziv: stalna navodila, ki oblikujejo vsak odgovor – vloga, ton, pravila. »Ti si pomočnik za Leaf & Pot, trgovino z rastlinami. Odgovarjaš le na vprašanja o naročilih, rastlinah in dostavi.«
- Utemeljitev (grounding): vključite dejstva, ki naj model uporabi, na primer vaše pravilnike ali katalog izdelkov, in mu naročite, naj se nanje opre. Zakaj je to pomembno, pojasni kaj je LLM.
- Rezervni odgovori: povejte, kaj naj stori, ko ni prepričan: »Če odgovora ni v podanih informacijah, to povej in ponudi e-poštni naslov podpore.«
- Oblika izhoda: če vaša koda bere odgovor, zahtevajte strogo obliko, na primer JSON.
- Testiranje: preizkusite nerodne vnose – nesramna sporočila, vprašanja izven teme, poskuse, da bi model prezrl svoja navodila (imenovano prompt injection) – preden to naredijo pravi uporabniki.
Ključni pojmi razloženi
| Pojem | Pomen |
|---|---|
| Prompt | Vnos, ki ga date modelu AI. |
| Sistemski poziv (system prompt) | Stalna navodila, nastavljena pred pogovorom. |
| Kontekst | Ozadne informacije, vključene v prompt. |
| Zero-shot / few-shot | Vprašanje brez primerov ali z nekaj primeri želenega rezultata. |
| Veriga misli (chain of thought) | Model prosite, naj problem reši korak za korakom, preden odgovori. |
| Utemeljitev (grounding) | Modelu daste izvorno gradivo in mu naročite, naj odgovore opre nanj. |
| Prompt injection | Besedilo, ki poskuša prepisati navodila modela, na primer »prezri prejšnja navodila«. |
| Kontekstno okno | Koliko besedila lahko model upošteva naenkrat. |
| Iteracija | Izboljševanje prompta glede na to, kar je prišlo nazaj. |
Pogoste napake in napačna razumevanja
- Iskanje čarobnih besed. »Ti si svetovno priznan strokovnjak« je veliko manj pomembno kot jasno povedati, kaj res potrebujete.
- Zahtevanje vsega naenkrat. Zahteva z 20 funkcijami da 20 napol dokončanih funkcij. Gradite po delih.
- Opisovanje rešitve namesto težave. »Dodaj tabelo s tremi stolpci« je manj uporabno kot »Sam mora na prvi pogled videti, kdo je prijavljen na vsako vadbo.«
- Pozabljanje, česa ne želite. Če ne želite prijave, plačil ali prenove, to povejte.
- Ne preberete rezultata. Preverite, kar je bilo zgrajeno, glede na vašo opredelitev »končano«, preden greste naprej.
- Ponovni začetek namesto izboljšave. Ponavadi je kratka nadaljnja zahteva (»to je blizu; spremeni X«) boljša kot ponovno pisanje celotnega prompta.
- Lepljenje skrivnosti v prompte. Ne lepite gesel ali živih API ključev v klepet, razen če orodje ponuja varen način shranjevanja.
Kaj vprašati svojega gradnika aplikacij
- »Preden začneš graditi, mi postavi vprašanja in pokaži svoj načrt.«
- »V treh stavkih ponovi, kaj misliš, da želim.«
- »Spremeni samo obrazec za rezervacije; ne dotikaj se ničesar drugega.«
- »Kaj si predpostavil, česar nisem določil?«
- »Spremeni moje zapiske v kratko specifikacijo z uporabniki, funkcijami, pravili in točkami »zaenkrat ne«.« Glejte kako napisati dokument zahtev za izdelek z AI.
- »Predlagaj, kako bi lahko to zahtevo bolje zastavil.«
Prompting v Mythex
Mythex ima tri načine klepeta, ki ustrezajo temu načinu dela: Plan za dogovor o pristopu, preden se kaj spremeni, Build za spremembe in Ask za vprašanja, ki ne smejo urejati datotek. Kot kontekst lahko priložite posnetke zaslona ali makete, če pa sprememba pokvari stvar, se lahko vrnete na kontrolno točko. Strani dokumentacije o učinkovitih promptih in iteriranju imata več primerov, kako iterirati aplikacijo, zgrajeno z AI pa pokrije zanko nadaljnjih zahtev.
Vprašanja
Kaj je prompt engineering na kratko?
Prompt engineering je načrtno pisanje in izboljševanje navodil za model umetne inteligence, da zanesljivo dobite želeni rezultat. Zajema to, kaj sprašujete, kakšen kontekst podajate, primere, omejitve in obliko, v kateri želite odgovor.
Ali potrebujem posebne trike ali čarobne besede?
Ne posebno. Sodobni modeli se najbolje odzivajo na jasna, konkretna in dobro organizirana navodila – enako kot sodelavec, ki mu nekaj razlagate. Kontekst, primeri in jasen opis končnega rezultata so veliko pomembnejši od posebnih fraz.
Kaj je sistemski poziv (system prompt)?
Sistemski poziv je skupek stalnih navodil, ki modelu podajo pred pogovorom, na primer njegova vloga, pravila in ton. Aplikacije ga uporabljajo, da oblikujejo vsak odgovor, uporabnikova sporočila pa pridejo za njim.
Ali je prompt engineering še potreben, ko AI postaja pametnejši?
Boljši modeli potrebujejo manj obhodov, a ne znajo brati misli. Če navedete cilj, občinstvo, omejitve in to, kaj pomeni »končano«, bodo rezultati vedno boljši, ker model dela le z informacijami, ki mu jih podate.