Prompt Engineering: Ako hovoriť s AI


Prompt engineering: definícia, ciele a kontext

Prompt engineering je disciplína navrhovania vstupov pre generatívne modely (najmä veľké jazykové modely, LLM) s cieľom maximalizovať kvalitu, konzistentnosť a bezpečnosť výstupov. Zahŕňa pochopenie obmedzení modelov (tokenizácia, kontextové okno, stochastika), kompozíciu inštrukcií, kontrolu formátovania výstupov, využitie nástrojov (retrieval, funkčné volania) a systematické testovanie. Výsledkom je spoľahlivý systém, v ktorom prompt nie je len text, ale časť architektúry.

Mentalný model LLM: ako číta prompt

  • Pravdepodobnostná predikcia tokenov: model generuje ďalší token na základe predchádzajúcich. Z konštrukcie nepozná pravdu, ale vzory a pravdepodobnosti.
  • Kontextové okno: len obsah v okne (system, developer, user, história, dokumenty) môže ovplyvniť odpoveď. Staršie časti môžu byť skrátené.
  • Inštrukčná hierarchia: spravidla platí priorita system > developer > user > content. Konflikty riešiť explicitne.
  • Tokenizácia a dĺžka: počet tokenov ovplyvňuje cenu, latenciu a riziko orezania kontextu; krátke, presné formulácie sú výhodou.

Štruktúra dobrého promptu

  1. Úloha: čo má model spraviť (napr. zhrň, klasifikuj, napíš kód).
  2. Kontext: doména, publikum, účel, obmedzenia.
  3. Formát výstupu: požadovaná štruktúra (JSON schema, tabuľka, Markdown/HTML, kódové bloky, sekcie).
  4. Príklady (few-shot): demonštrácie vstup→výstup s variáciami a boundary prípadmi.
  5. Hodnotiace kritériá: čo je dobré; krátke checklisty/heuristiky.
  6. Obmedzenia a zákazy: čo nesmie model robiť (napr. špekulovať mimo zdrojov, vymýšľať citácie).

Promptovacie vzory (patterns) a kedy ich použiť

  • Role prompting: priraď modelu úlohu (napr. Si daňový auditor…). Zvyšuje konzistenciu tónu a detailu.
  • Few-shot demonstrácie: 2–5 kvalitných príkladov uľahčí generalizáciu pri špecifickom formáte alebo štýle.
  • Decompose & constrain: rozdeľ zložitú úlohu na kroky a stanov výstup každého kroku.
  • Retrieve & cite: vyžaduj prácu len so zadanými zdrojmi a explicitné citácie; minimalizuje halucinácie.
  • Self-check / critique: nech model skontroluje vlastný výstup voči kritériám (over checklist, nájdi chyby).
  • Function/tool calling: definuj JSON špecifikáciu nástroja; model navrhne volanie, runtime dodá fakty.
  • Template prompting: opakovane použiteľné šablóny s premennými (napr. {{audience}}, {{tone}}, {{schema}}).

Formátová kontrola: od voľného textu po strojovo čitateľné výstupy

Pre integráciu do systémov je kľúčová deterministická štruktúra:

  • JSON schema: definuj presný tvar, typy a enumy; vyžiadaj len JSON bez komentárov.
  • Validácia: po generovaní validuj proti schéme; pri chybe pošli späť chybu a žiadaj opravu.
  • Stop sekvencie a delimitery: zabráň presiaknutiu mimo očakávaného bloku.
  • Tabuľky/CSV: keď je potrebný export; uveď oddelovač a únik špeciálnych znakov.

Kontrola štýlu, tónu a dĺžky

  • Audience & tone: napr. pre CFO, stručne, bez žargónu vs. pre vývojárov, s odkazmi na API.
  • Verbosity budget: stanov limity (slová, sekcie) alebo tl;dr verziu popri plnom výstupe.
  • Konzekventná terminológia: prilož slovník pojmov, skratiek a prekladové preferencie.

Parametre generovania a ich vplyv

  • Teplota/top-p: nižšie → konzistentnejšie, vyššie → kreatívnejšie; pri kóde a faktoch uprednostni nižšie.
  • Max tokens: chráni latenciu a náklady; pozor na orezanie uprostred JSON.
  • Frekvenčné/presence penalty: potláčajú opakovania; testuj na dlhších textoch.

Retrieval-Augmented Generation (RAG) a grounding

RAG dopĺňa prompt o externé fakty (dokumenty, databázy) a vyžaduje pracovať len s citovanými pasážami. Kľúčové komponenty:

  • Indexácia: chunking s prekrývaním, embeddings, metadátové filtre (autor, dátum, jazyk).
  • Relevance & re-ranking: hybridné vyhľadávanie (BM25 + vektory), re-ranking cez cross-encoder.
  • Citovanie: referencie s identifikátorom a presnou pasážou; výstup bez zdrojov odmietni.

Funkčné volania a nástroje (toolformer pattern)

Urči špecifikáciu nástrojov (funkcií) v JSON (názov, popis, parametre). Model rozhodne, kedy zavolať nástroj (vyhľadanie, výpočty, transakcie). Guardrails zabezpečia, že bez nástroja neodpovie na vysokorizikové otázky.

Bezpečnosť a etika promptovania

  • Jasné hranice: explicitne zakáž nebezpečné, nezákonné či citlivé výstupy; definuj redirekciu na bezpečné alternatívy.
  • Dezinfo a halucinácie: vyžaduj neistotné formulácie, neviem odpoveď a overovanie zo zdrojov.
  • Jailbreak odolnosť: nepoužívaj do promptu tajné kľúče; separuj systémové politiky; detekcia a blokovanie prompt injection pri RAG (filtruj prevzaté pokyny z dokumentov).
  • Ochrana údajov: minimalizuj PII v promptoch, maskuj, používaj klasifikáciu citlivosti a retenčné politiky.

Antipatterny a časté chyby

  • Nejednoznačné zadanie: bez kritérií kvality a formátu rastie variabilita.
  • Príliš mnoho cieľov naraz: radšej viac menších krokov v orchestrácii ako všetko v jednom.
  • Chýbajúce príklady hraničných prípadov: model sa učí z demonštrácií; ukáž, čo je zlé.
  • Nedeterministické výstupy pre stroje: JSON bez schémy, chýbajúce kľúče, voľné komentáre.

Prompting pre špecifické triedy úloh

  • Zhrnutie: definuj publikum, dĺžku, zachovanie čísel a citácií; zachovaj technické pojmy.
  • Extrahovanie údajov: presná schéma (typy, enum), pravidlá pri chýbajúcej hodnote (null vs. prázdny reťazec), no guess politika.
  • Transformácie textu: štýl, tón, jazyk, terminologické tabuľky, zákaz vymýšľať fakty.
  • Kód a testy: požaduj kompilovateľný súbor, verziu jazyka, jednotkové testy a časovú/priestorovú zložitosť.
  • Analýzy a kalkulácie: nech model vysvetlí postup stručným odôvodnením a skontroluje výsledok alternatívnou metódou.

Programovateľné promptovanie: šablóny, knižnice, verziovanie

  • Šablóny: parametrizácia (napr. Jinja/Liquid) s kontrolou úniku premenných a escapovaním.
  • Verziovanie: spravuj prompt ako kód (Git), s CI testami a zmenovými logmi.
  • Prompt registries: centrálna knižnica s metadátami (účel, metriky, riziká, závislosti).

Testovanie a hodnotenie (EvalOps)

  1. Gold sety: reprezentatívne scenáre vrátane toxických/edge prípadov.
  2. Automatické metriky: presnosť extrakcie, validita JSON, faktická zhoda (n-gram/semantic), latencia, cena.
  3. Human-in-the-loop: rubriky pre kvalitu, užitočnosť, bezpečnosť; slepé porovnávanie variantov.
  4. A/B a canary: postupné nasadenie, monitorovanie regresií a error budgetov.

Práca s neistotou a citáciami

  • Vyžaduj stupnicu neistoty: nízka/stredná/vysoká, s dôvodom.
  • Answer or abstain: ak chýba zdroj v kontexte, model má odmietnuť alebo požiadať o retrieval.
  • Citačný štýl: identifikátory zdrojov (ID, url hash, strana), nie len názvy.

Latencia, náklady a škálovanie

  • Prompt kompresia: skracuj inštrukcie, normalizuj príklady, zdieľaj systémové konštanty cez context cache.
  • Chunking & map-reduce: spracuj veľké korpusy po častiach, potom agreguj.
  • Streaming a prerušenia: pre UX zobrazuj stream; definuj idempotentné retry pri timeoutoch.

Multilingválny prompting a lokalizácia

  • Jazyková preferencia: explicitne uveď jazyk vstupu a výstupu (napr. odpovedaj po slovensky).
  • Terminologické glosáre: záväzné preklady odborných termínov.
  • Regionálne normy: dátumy, čísla, menové jednotky, legislatívne kontexty.

Prompt engineering pre agentné systémy

  • Planning: explicitná výzva na plán krokov a výber nástrojov.
  • Memory: súhrny namiesto plného logu; rotácia kontextu; ochrana pred prompt injection z externých textov.
  • Critique loop: sekundárny kritik s inou rolou a metrikou; povinné schválenie pred publikovaním.

Právne a compliance aspekty

  • Autorské práva a citácie: vyžaduj parafrázu a citácie; nepýtaj sa na reprodukciu chránených textov.
  • PII a citlivé údaje: maskovanie, minimalizácia, súhlas; definuj redaction rules v system promte.
  • Auditovateľnosť: logovanie verzie promptu, parametrov, zdrojov a rozhodnutí nástrojov.

Praktické šablóny (minivzorky)

<!-- Extrakcia do JSON s prísnou validáciou --> Úloha: Extrahuj polia z textu. Ak pole chýba, vráť null. Nevymýšľaj. Kontext: <vložený text> Výstup: Vráť LEN JSON zodpovedajúci schéme: { invoice_number: string|null, issue_date: YYYY-MM-DD|null, total_amount: number|null, currency: EUR|USD|GBP|null } Kontroly: over formát dátumu; žiadne komentáre mimo JSON. 
<!-- RAG s citáciami --> Úloha: Odpovedaj len na základe priložených pasáží. Ak nie je odpoveď, napíš Nedostatočné zdroje. Formát: - Odpoveď (max 150 slov) - Zdroje: [<ID: strana/riadok>, ...] 
<!-- Kritický self-check --> Po vytvorení návrhu: 1) Skontroluj konzistenciu s požiadavkami. 2) Uveď 3 najväčšie riziká alebo nejasnosti. 3) Navrhni korekcie. 

Optimalizačný cyklus: od návrhu k produkcii

  1. Hypotéza: navrhni dva konkurenčné prompty (A/B) s odlišnou štruktúrou.
  2. Offline eval: spusti na reprezentatívnom sete; meraj presnosť/validitu/latenciu.
  3. Pilot: nasad canary (1–5 % prevádzky); monitoruj chybovosť a eskalácie.
  4. Rollout + monitoring: alerty na validačné chyby JSON, halucinácie (bez citácií), toxicitu.
  5. Iterácia: verziuj, dokumentuj, archivuj rozhodnutia.

Checklist pre kvalitný prompt

  • Je úloha jednoznačná a merateľná?
  • Je formát výstupu striktne definovaný a validovateľný?
  • Sú priložené vhodné a stručné príklady, vrátane hraničných?
  • Existujú explicitné zákazy (no-guess, no-opinion bez zdrojov)?
  • Sú nastavené parametre generovania primerané cieľu?
  • Je prompt krátky vzhľadom na kontextové okno?
  • Je zahrnutá bezpečnostná a právna klauzula primeraná doméne?

Zhrnutie

Prompt engineering sa zmenil z umetého písania dopytov na inžiniersku disciplínu s vlastnými vzormi, testami a prevádzkovými zásadami. Spoľahlivé systémy vznikajú kombináciou: jasné inštrukcie, štruktúrované výstupy, grounding cez RAG a nástroje, bezpečnostné guardrails a neustála evalvácia. Organizácie, ktoré s promptmi narábajú ako s kódom—verziujú, testujú, merajú—dosahujú vyššiu kvalitu, nižšiu chybovosť a lepší pomer cena/výkon.

Poradňa

Potrebujete radu? Chcete pridať komentár, doplniť alebo upraviť túto stránku? Vyplňte textové pole nižšie. Ďakujeme ♥