Prompt engineering: definice, cíle a kontext
Prompt engineering je disciplína navrhování vstupů pro generativní modely (zejména velké jazykové modely, LLM) s cílem maximalizovat kvalitu, konzistenci a bezpečnost výstupů. Zahrnuje pochopení omezení modelů (tokenizace, kontextové okno, stochastičnost), kompozici instrukcí, kontrolu formátování výstupů, využití nástrojů (retrieval, funkční volání) a systematické testování. Výsledkem je spolehlivý systém, v němž prompt není jen text, ale součást architektury.
Mentalní model LLM: jak model „čte“ prompt
- Pravděpodobnostní predikce tokenů: model generuje další token na základě předchozích. Z konstrukce nezná pravdu, ale vzory a pravděpodobnosti.
- Kontextové okno: pouze obsah v rámci okna (system, developer, user, historie, dokumenty) může ovlivnit odpověď. Starší části mohou být zkracovány.
- Instrukční hierarchie: obvykle platí priorita system > developer > user > content. Konflikty je třeba řešit explicitně.
- Tokenizace a délka: počet tokenů ovlivňuje cenu, latenci a riziko ořezání kontextu; krátké, přesné formulace jsou výhodou.
Struktura kvalitního promptu
- Úkol: co má model vykonat (např. shrnout, klasifikovat, napsat kód).
- Kontext: doména, publikum, účel, omezení.
- Formát výstupu: požadovaná struktura (JSON schéma, tabulka, Markdown/HTML, kódové bloky, sekce).
- Příklady (few-shot): ukázky vstup→výstup s variacemi a hraničními případy.
- Hodnotící kritéria: co je kvalitní; krátké kontrolní seznamy/heuristiky.
- Omezení a zákazy: co model nesmí dělat (např. spekulovat mimo zdroje, vymýšlet citace).
Vzory promptování (patterns) a kdy je použít
- Role prompting: přiřaď modelu roli (např. Jsi daňový auditor…). Zvýší konzistenci tónu a detailů.
- Few-shot demonstrace: 2–5 kvalitních příkladů usnadní generalizaci u specifického formátu nebo stylu.
- Decompose & constrain: rozděl složitý úkol na kroky a stanov výstup každého kroku.
- Retrieve & cite: vyžaduj práci pouze se zadanými zdroji a explicitní citace; minimalizuje halucinace.
- Self-check / critique: nechej model zkontrolovat vlastní výstup vůči kritériím (projít checklist, najít chyby).
- Function/tool calling: definuj JSON specifikaci nástroje; model navrhne volání, runtime dodá fakta.
- Template prompting: opakovaně použitelné šablony s proměnnými (např. {{audience}}, {{tone}}, {{schema}}).
Formátová kontrola: od volného textu po strojově čitelné výstupy
Pro integraci do systémů je klíčová deterministická struktura:
- JSON schéma: definuj přesný tvar, typy a enumy; vyžaduj pouze JSON bez komentářů.
- Validace: po generování validuj proti schématu; při chybě vrať chybu a požaduj opravu.
- Stop sekvence a delimiter: zamez prosakování mimo očekávaný blok.
- Tabulky/CSV: při nutnosti exportu; uveď oddělovač a unikání speciálních znaků.
Kontrola stylu, tónu a délky
- Publikum & tón: např. pro CFO stručně, bez žargonu vs. pro vývojáře s odkazy na API.
- Verbosity budget: stanov limity (slova, sekce) nebo tl;dr verzi vedle plného výstupu.
- Konzistentní terminologie: přilož slovník pojmů, zkratek a překladové preference.
Parametry generování a jejich vliv
- Teplota/top-p: nižší → konzistentnější, vyšší → kreativnější; u kódu a faktů upřednostni nižší hodnoty.
- Max tokens: chrání latenci a náklady; pozor na ořezání uprostřed JSON.
- Frekvenční/presence penalizace: potlačují opakování; testuj na delších textech.
Retrieval-Augmented Generation (RAG) a grounding
RAG doplňuje prompt o externí fakta (dokumenty, databáze) a vyžaduje pracovat pouze s citovanými pasážemi. Klíčové komponenty:
- Indexace: chunking s překrýváním, embeddingy, metadata filtry (autor, datum, jazyk).
- Relevance & re-ranking: hybridní vyhledávání (BM25 + vektory), re-ranking přes cross-encoder.
- Citování: reference s identifikátorem a přesnou pasáží; výstup bez zdrojů odmítnout.
Funkční volání a nástroje (toolformer pattern)
Urči specifikaci nástrojů (funkcí) v JSON (název, popis, parametry). Model rozhodne, kdy nástroj zavolat (vyhledávání, výpočty, transakce). Guardrails zajistí, že bez nástroje neodpoví na vysoce rizikové dotazy.
Bezpečnost a etika promptování
- Jasné hranice: explicitně zakázat nebezpečné, nezákonné či citlivé výstupy; definovat přesměrování na bezpečné alternativy.
- Dezinformace a halucinace: vyžadovat formulace vyjadřující nejistotu, odpověď „nevím“ a ověřování ze zdrojů.
- Odolnost proti jailbreakům: nepoužívat tajné klíče v promptu; separovat systémové politiky; detekce a blokování prompt injection při RAG (filtrovat převzaté instrukce z dokumentů).
- Ochrana dat: minimalizovat PII v promptech, maskovat, používat klasifikaci citlivosti a retenční politiky.
Antipatterny a časté chyby
- Nejednoznačné zadání: bez kritérií kvality a formátu roste variabilita výstupů.
- Příliš mnoho cílů najednou: raději více menších kroků v orchestraci než všechno v jednom.
- Chybějící příklady hraničních případů: model se učí z demonstrací; ukaž, co je špatné.
- Nedeterministické výstupy pro stroje: JSON bez schématu, chybějící klíče, volné komentáře.
Prompting pro specifické třídy úloh
- Shrnutí: definuj publikum, délku, zachování čísel a citací; zachovej technické termíny.
- Extrahování dat: přesná schéma (typy, enum), pravidla při chybějící hodnotě (
nullvs. prázdný řetězec), no guess politika. - Transformace textu: styl, tón, jazyk, terminologické tabulky, zákaz vymýšlet fakta.
- Kód a testy: požaduj kompilovatelný soubor, verzi jazyka, jednotkové testy a časovou/prostorovou složitost.
- Analýzy a kalkulace: model nech vysvětlit postup stručným odůvodněním a zkontrolovat výsledek alternativní metodou.
Programovatelné promptování: šablony, knihovny, verzování
- Šablony: parametrizace (např. Jinja/Liquid) s kontrolou úniku proměnných a escapováním.
- Verzování: spravuj prompt jako kód (Git), s CI testy a changelogy.
- Prompt registries: centrální knihovna s metadaty (účel, metriky, rizika, závislosti).
Testování a hodnocení (EvalOps)
- Gold sety: reprezentativní scénáře včetně toxických/hraničních případů.
- Automatické metriky: přesnost extrakce, validita JSON, faktická shoda (n-gram/semantická), latence, cena.
- Human-in-the-loop: rubriky pro kvalitu, užitečnost, bezpečnost; slepé porovnání variant.
- A/B a canary: postupné nasazení, monitorování regresí a error budgetů.
Práce s nejistotou a citacemi
- Vyžaduj stupnici nejistoty: nízká/střední/vysoká s odůvodněním.
- Answer or abstain: chybí-li zdroj v kontextu, model má odmítnout odpověď nebo požádat o retrieval.
- Citační styl: identifikátory zdrojů (ID, url hash, strana), nikoli pouze názvy.
Latence, náklady a škálování
- Prompt komprese: zkracuj instrukce, normalizuj příklady, sdílej systémové konstanty přes context cache.
- Chunking & map-reduce: zpracuj velké korpusy po částech, následně agreguj.
- Streaming a přerušení: pro UX zobrazuj stream; definuj idempotentní retry při timeoutu.
Multijazyčné promptování a lokalizace
- Jazyková preference: explicitně stanov jazyk vstupu a výstupu (např. odpovídej česky).
- Terminologické glosáře: závazné překlady odborných termínů.
- Regionální normy: datumy, čísla, měnové jednotky, legislativní kontexty.
Prompt engineering pro agentní systémy
- Plánování: explicitní výzva k plánování kroků a výběru nástrojů.
- Paměť: souhrny místo plného logu; rotace kontextu; ochrana před prompt injection z externích textů.
- Critique loop: sekundární kritik s jinou rolí a metrikou; povinné schválení před publikováním.
Právní a compliance aspekty
- Autorská práva a citace: vyžaduj parafrázi a citace; nevyžaduj reprodukci chráněných textů.
- PII a citlivé údaje: maskování, minimalizace, souhlas; definuj redakční pravidla v system promptu.
- Auditovatelnost: logování verze promptu, parametrů, zdrojů a rozhodnutí nástrojů.
Praktické šablony (minivzorky)
<!-- Extrakce do JSON s přísnou validací --> Úkol: Extrahuj pole z textu. Pokud pole chybí, vrať null. Nevymýšlej. Kontext: <vložený text> Výstup: Vrať POUZE JSON odpovídající schématu: { invoice_number: string|null, issue_date: YYYY-MM-DD|null, total_amount: number|null, currency: EUR|USD|GBP|null } Kontroly: ověř formát data; žádné komentáře mimo JSON.
<!-- RAG s citacemi --> Úkol: Odpovídej pouze na základě přiložených pasáží. Pokud není odpověď, napiš Nedostatečné zdroje. Formát: - Odpověď (max 150 slov) - Zdroje: [<ID: strana/řádek>, ...]
<!-- Kritický self-check --> Po vytvoření návrhu: 1) Zkontroluj konzistenci s požadavky. 2) Uveď 3 největší rizika nebo nejasnosti. 3) Navrhni opravy.
Optimalizační cyklus: od návrhu k produkci
- Hypotéza: navrhni dva konkurenční prompty (A/B) s odlišnou strukturou.
- Offline eval: spusť na reprezentativním setu; měř přesnost/validitu/latenci.
- Pilot: nasaď canary (1–5 % provozu); monitoruj chybovost a eskalace.
- Rollout + monitoring: alarmy na validační chyby JSON, halucinace (bez citací), toxicitu.
- Iterace: verzuj, dokumentuj, archivuj rozhodnutí.
Kontrolní seznam pro kvalitní prompt
- Je úkol jednoznačný a měřitelný?
- Je formát výstupu striktně definovaný a validovatelný?
- Jsou přiloženy vhodné a stručné příklady, včetně hraničních?
- Existují explicitní zákazy (no-guess, no-opinion bez zdrojů)?
- Jsou nastaveny parametry generování přiměřené cíli?
- Je prompt krátký vzhledem ke kontextovému oknu?
- Je zahrnuta bezpečnostní a právní klauzule přiměřená doméně?




























