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.

Kategorie: Umělá inteligenceAktualizováno

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

  1. 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>
  2. 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

  1. Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing(otevře se v novém okně)arXiv, 2021
  2. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models(otevře se v novém okně)arXiv, 2022
  3. Prompt engineering techniques(otevře se v novém okně)Microsoft Learn
  4. OWASP Top 10 for Large Language Model Applications(otevře se v novém okně)OWASP

Související pojmy

Potřebujete to vyřešit v praxi?

Poradíme, jak na to ve vašem projektu

Vysvětlit pojem je jedna věc, navrhnout kolem něj funkční řešení druhá. Ozvěte se a probereme, co dává smysl u vás.