prompt endžinýringTaképromptování, prompt design, prompt programmingPokročilý
Definice
Prompt engineering je navrhování, testování a průběžné ladění vstupních instrukcí pro generativní modely tak, aby dávaly spolehlivě užitečné a kontrolovatelné výstupy. Zahrnuje volbu role, kontextu, formátu odpovědi, příkladů, omezení i kontrol proti halucinacím, prompt injection a úniku citlivých dat v aplikacích.
Proč nestačí napsat jeden prompt
Prompt engineering řeší rozdíl mezi dotazem pro člověka a instrukcí pro pravděpodobnostní model. LLM nečte záměr autora přímo, ale generuje pokračování podle kontextu, tréninku, systémových pravidel a parametrů běhu. Malá změna formulace proto může změnit tón, rozsah, formát i přesnost odpovědi. Dobrý prompt snižuje prostor pro domýšlení a dává modelu měřitelné mantinely.
U produkčních aplikací nejde jen o hezkou odpověď v chatu. Prompt často funguje jako součást rozhraní mezi aplikací, uživatelem, znalostní bází a dalším nástrojem. Návrh promptu pak připomíná návrh API: musí být srozumitelný, testovatelný, odolný vůči nečekaným vstupům a udržovatelný při změně modelu.
Z čeho se skládá dobrý prompt
Kvalitní prompt obvykle obsahuje úlohu, kontext, omezení, požadovaný výstup a kritéria kvality. Role typu „jsi právník“ sama o sobě nestačí. Užitečnější je říct, pro koho odpověď vzniká, jaké zdroje smí model použít, co má vynechat a v jakém tvaru má výsledek vrátit.
Příklady v promptu, známé jako few-shot prompting, pomáhají hlavně u klasifikace, transformace textu nebo dodržení formátu. U složitějších úloh se přidává rozklad problému, kontrolní seznam nebo požadavek na uvedení nejistot. V aplikacích s RAG se do promptu vkládají nalezené dokumenty a instrukce, aby model odpovídal pouze z dodaného kontextu.
Dva praktické příklady prompt engineeringu
Klasifikace zákaznické zprávy
Příklad 1: E-shop potřebuje roztřídit příchozí e-maily na reklamace, dotazy k dopravě a žádosti o změnu objednávky. Prompt určí povolené kategorie, požadovaný JSON a pravidlo pro nejasné případy. Výstup se dá rovnou poslat do helpdeskového systému.
Úkol: Zařaď zákaznickou zprávu do jedné kategorie: reklamace, doprava, změna_objednávky, jiné.
Vrať pouze JSON ve tvaru {"kategorie":"...","jistota":"nízká|střední|vysoká"}.
Pokud zpráva obsahuje více problémů, zvol hlavní důvod kontaktu.
Zpráva: <text_z_formuláře>Shrnutí dlouhého zápisu ze schůzky
Příklad 2: Produktový manažer vloží přepis porady a chce akční body bez dlouhého vyprávění. Prompt stanoví publikum, výstupní strukturu a pravidlo pro chybějící odpovědnosti. Výsledek je kratší, jednotnější a vhodnější pro tiketovací systém.
Vytvoř shrnutí pro vývojový tým.
Výstup rozděl na: Rozhodnutí, Otevřené otázky, Akční body.
Každý akční bod uveď jako: vlastník, úkol, termín. Pokud údaj v přepisu není, napiš "neuvedeno".
Přepis: <text_přepisu>Hranice spolehlivosti a bezpečnosti
Prompt engineering nezaručuje pravdu ani bezpečnost sám o sobě. Model může halucinovat, ignorovat část instrukcí nebo podlehnout prompt injection v uživatelském vstupu či vloženém dokumentu. Produkční řešení proto kombinuje dobré prompty s validací výstupu, logováním, testovací sadou, omezením nástrojů a oddělením systémových instrukcí od nedůvěryhodného obsahu.
Příklady z praxe
Klasifikace zákaznické zprávy
E-shop potřebuje roztřídit příchozí e-maily na reklamace, dotazy k dopravě a žádosti o změnu objednávky. Prompt určí povolené kategorie, požadovaný JSON a pravidlo pro nejasné případy. Výstup se dá rovnou poslat do helpdeskového systému.
Úkol: Zařaď zákaznickou zprávu do jedné kategorie: reklamace, doprava, změna_objednávky, jiné. Vrať pouze JSON ve tvaru {"kategorie":"...","jistota":"nízká|střední|vysoká"}. Pokud zpráva obsahuje více problémů, zvol hlavní důvod kontaktu. Zpráva: <text_z_formuláře>Shrnutí dlouhého zápisu ze schůzky
Produktový manažer vloží přepis porady a chce akční body bez dlouhého vyprávění. Prompt stanoví publikum, výstupní strukturu a pravidlo pro chybějící odpovědnosti. Výsledek je kratší, jednotnější a vhodnější pro tiketovací systém.
Vytvoř shrnutí pro vývojový tým. Výstup rozděl na: Rozhodnutí, Otevřené otázky, Akční body. Každý akční bod uveď jako: vlastník, úkol, termín. Pokud údaj v přepisu není, napiš "neuvedeno". Přepis: <text_přepisu>
Časté omyly
- MýtusStačí napsat „chovej se jako expert“ a model bude spolehlivý.
- Ve skutečnostiRole může ovlivnit styl odpovědi, ale sama neřeší fakta, formát ani hranice úlohy. Spolehlivější prompt přidává kontext, omezení, příklady, očekávanou strukturu a kontrolu nejistoty.
- MýtusČím delší prompt, tím lepší výsledek.
- Ve skutečnostiDlouhý prompt může model zatížit nerelevantními instrukcemi a zvýšit riziko rozporů. Lepší je jasná struktura, odstranění šumu a testování na typických i hraničních vstupech.
- MýtusPrompt engineering je jen trik pro chatovací nástroje.
- Ve skutečnostiPrompt engineering se používá i v aplikacích, kde LLM volá nástroje, generuje JSON, vyhledává v dokumentech nebo pomáhá s workflow. V takovém prostředí je prompt součástí návrhu systému.
Časté dotazy
- Kdy má prompt engineering smysl v běžné aplikaci?
- Prompt engineering se vyplatí použít, když generativní model plní proměnlivé úlohy, pracuje s kontextem od uživatele nebo má vracet strukturovaný výstup. Typické jsou asistenti, interní vyhledávání, klasifikace textu, shrnutí dokumentů a automatizace podpory. Jednorázový chat snese volnější zadání, ale aplikace potřebuje prompt, který se dá testovat na sadě vstupů a který selže předvídatelně.
- Dá se prompt engineering nahradit fine-tuningem?
- Prompt engineering nenahrazuje fine-tuning ve všech situacích. Prompt mění chování modelu bez úpravy vah, takže je rychlý, levnější na iteraci a vhodný pro pravidla, kontext a formát odpovědi. Fine-tuning dává větší smysl, když má model dlouhodobě napodobovat specifický styl, doménové rozhodování nebo vzory z velkého množství příkladů. Produkční systémy často kombinují prompt, RAG a případně doladěný model.
- Jak se měří kvalita promptu pro LLM?
- Kvalita promptu pro LLM se měří na konkrétní testovací sadě, ne podle dojmu z jedné odpovědi. Tým sleduje přesnost, dodržení formátu, úplnost, míru halucinací, bezpečné odmítnutí rizikových požadavků a stabilitu při různých formulacích vstupu. U strukturovaných výstupů pomáhá automatická validace JSON schématu. U znalostních odpovědí je důležité porovnat výsledek se zdroji nebo očekávanou odpovědí.
- Proč stejný prompt nedává vždy stejnou odpověď?
- Stejný prompt nemusí dávat vždy stejnou odpověď, protože generativní model vybírá další tokeny pravděpodobnostně a běh může ovlivnit nastavení teploty, top-p, verze modelu i okolní kontext. Nižší náhodnost a přesnější formátování zvyšují stabilitu, ale nezaručují absolutní opakovatelnost. Kritické aplikace proto výstup kontrolují programově a nespoléhají pouze na formulaci promptu.
Zdroje
- Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing(otevře se v novém okně)
- Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(otevře se v novém okně)
- Prompt engineering techniques(otevře se v novém okně)
- OWASP Top 10 for Large Language Model Applications(otevře se v novém okně)