Minulý měsíc jsem chtěl od modelu podklad na text o zdražování energií pro drobné živnostníky. Napsal jsem jednu větu: „Napiš mi něco o elektřině a firmách.” Dostal jsem tři odstavce o tom, že ceny energií jsou důležité téma, které ovlivňuje hospodářství. K ničemu.

Zadání jsem přepsal. Řekl jsem, kdo text čte (majitelé malých provozoven, ne energetici), co přesně mají zjistit (jak se bránit prudkému zdražení na burze), jak dlouhý má text být a jakým tónem má být napsaný. Za třicet vteřin jsem měl použitelný základ.

Model byl mezi těmi dvěma pokusy pořád stejný. Stejný den, stejná cena za dotaz, stejná databáze, ze které čerpal. Rozdíl byl jenom v tom, co jsem mu řekl.

Tenhle text je průvodce, jak psát zadání, aby tenhle rozdíl fungoval ve váš prospěch pokaždé, ne jen náhodou. Projdeme si stavbu dobrého promptu, hlavní techniky, které se dají použít, a pár reálných příkladů, na kterých je vidět, kde přesně se láme, jestli dostanete použitelný text, nebo obecnou vatu.

Skládačka, ze které vzniká dobrý prompt

Dobré zadání se dá rozebrat na čtyři kousky. Fungují skoro vždycky, ať píšete e-mail, kód, nebo báseň k narozeninám tchyně.

Role říká modelu, z jaké pozice má odpovídat. „Jsi zkušený účetní” povede k jinému textu než „jsi kamarád, co tomu rozumí jen z doslechu”. Model sám o sobě žádný úhel pohledu nemá, a tak si bez zadání vybere ten nejobecnější a nejplošší, jaký umí. Role tuhle volbu zúží.

Úkol je věta, která říká, co přesně má vzniknout. Ne téma, ale výstup: „napiš odpověď na reklamaci”, ne „napiš něco o reklamacích”. Přesně tenhle rozdíl dělí použitelný text od univerzální vaty, se kterou stejně nic neuděláte.

Kontext je všechno, co model potřebuje vědět, aby úkol vyřešil pro váš konkrétní případ. Komu text jde, co se stalo, jaká fakta má zohlednit, které slovo v textu nesmí být, protože ho firma z minulosti nemá ráda. Čím víc relevantního kontextu dostane, tím míň si musí domýšlet sám. A domýšlení je přesně to místo, kde vznikají plané fráze a chyby.

Formát určuje, jak má výstup vypadat navenek. Délka, struktura, jazyk. „Do pěti vět”, „jako e-mail s předmětem”, „v bodech, žádná dlouhá souvětí”. Bez tohohle pokynu si model formát vybere sám, a obvykle sáhne po delší variantě, protože delší text vypadá důkladněji, i když důkladnější není.

Když ty čtyři kousky spojíte do jedné zprávy, vypadá to třeba takhle: „Jsi zkušený personalista. Napiš odmítnutí uchazeči po pohovoru, který proběhl slušně, ale na pozici nesedí zkušenostmi. Firma se jmenuje Nordika, pozice je vedoucí skladu. Chci zdvořilý, ale jasný text bez prázdných frází typu ‚budeme vás mít na paměti’. Maximálně sedm vět, s oslovením a podpisem.” Jedna zpráva, čtyři informace, hotový podklad namísto dohadování.

Pořadí, ve kterém tyhle čtyři věci napíšete, nehraje roli. Model si je poskládá, ať roli zmíníte na začátku nebo formát na konci věty. Podstatné je, aby tam všechny čtyři byly aspoň naznačené. Nejčastěji chybí kontext a formát, protože se zdají samozřejmé tomu, kdo zadání píše, jenže model vaši hlavu nečte a samozřejmé věci nezná.

U krátkých a běžných úkolů nemusíte psát všechny čtyři kousky vypsaně. „Přelož mi tuhle větu do angličtiny” nepotřebuje roli ani zvláštní formát, protože úkol je jasný sám o sobě. Skládačka se hodí hlavně tam, kde je výsledek subjektivní nebo kde záleží na detailech, které model bez vás neuhádne.

Techniky, které se vyplatí znát

Kolem promptování vzniklo za pár let slovníkové bohatství, které zní složitě, ale za většinou pojmů se skrývá jednoduchý trik. Není potřeba znát je všechny nazpaměť. Stačí vědět, který se hodí na jaký problém, podobně jako truhlář sahá po jiném dlátu na hrubování a jiném na jemné začištění hrany. Každé z nich zaslouží samostatný podrobný text, tady jde jen o mapu, po které se dá zorientovat.

Nulté kolo: zero-shot

Zero-shot (doslova „bez jediné ukázky”) je běžný způsob, jak se s modelem bavíte, aniž byste o tom přemýšleli. Zadáte úkol rovnou, bez ukázkového příkladu, jak má výstup vypadat, a spoléháte na to, že model úkol pozná z popisu. Pro jednoduché a běžné úkoly, jako je shrnutí e-mailu nebo překlad věty, to obvykle stačí.

U netypických úkolů zero-shot naráží. Když chcete, aby model dodržel konkrétní firemní styl nebo neobvyklou strukturu tabulky, jen popis mu často nestačí. Tam přichází na řadu ukázka.

Ukažte mu vzor: few-shot

Few-shot znamená, že do promptu přidáte pár hotových příkladů, jak má úkol vypadat vyřešený, a model si z nich odvodí vzor. Napíšete třeba tři páry „recenze produktu → jedna věta shrnutí” a pak přidáte čtvrtou recenzi bez shrnutí. Model dopočítá zbytek podle vzoru, který jste mu ukázal.

Hodí se to hlavně tam, kde je těžké popsat pravidlo slovy, ale snadné ho ukázat na příkladu. Klasifikace, jak přesně formátovat data, jaký tón text má mít. Dva až tři příklady bývají dost, víc už jen prodlužuje zadání bez velkého zisku.

Přiložte referenci

Blízká varianta few-shotu je jednodušší: nepřipravujete formální sadu párů, jenom přiložíte jeden text, který se vám líbí, a řeknete „piš v tomhle stylu”. Funguje to výborně u tónu a rytmu vět, hůř u přesných pravidel, protože model si ze stylu odvodí spíš pocit než přesný recept.

Sám tohle používám, když chci, aby text zněl jako předchozí článek na stejné téma. Vložím odstavec, o kterém vím, že sedí, a napíšu: „drž se podobného tempa vět a podobné míry humoru, ne tématu.”

Mysli nahlas: chain-of-thought

Chain-of-thought, česky řetězec myšlení, je pokyn, aby model postupoval po krocích místo toho, aby vystřelil rovnou hotovou odpověď. Stačí věta „přemýšlej krok za krokem” nebo „nejdřív rozepiš postup, pak teprve odpověz”.

U jednoduchých otázek to nic nepřidá. U úloh, kde je potřeba víc kroků, počty nebo logika, to dokáže výrazně zlepšit přesnost, protože model si postupně kontroluje vlastní mezivýsledky místo toho, aby hádal rovnou konečné číslo. Nevýhoda je delší a někdy zbytečně upovídaná odpověď, kterou musíte proscrollovat.

Novější modely, které se prodávají jako „uvažovací” nebo „reasoning”, tenhle krok dělají samy v pozadí, ještě než vám cokoli napíšou, a mezivýsledky často ani neukážou. U nich věta „mysli krok za krokem” ztrácí smysl, protože přesně tohle už dělají automaticky. Poznáte to podle toho, že odpověď přijde s malým zpožděním a rovnou hotová, bez viditelného rozepsaného postupu.

Druhý pokus bývá lepší: iterace

Iterativní zpřesňování zní jako odborný pojem pro něco, co běžně děláte s kolegou nad textem. Nevzdáte se po první verzi. Řeknete, co nesedí, a necháte model přepsat jen tu část.

„Zkrať to na polovinu.” „Ten první odstavec je moc formální, přepiš ho volněji.” „Vynech třetí bod, není podstatný.” Každá další zpráva staví na kontextu předchozí konverzace, takže nemusíte psát celé zadání znovu od nuly. Tohle je podle mě nejpodceňovanější dovednost u lidí, kteří s AI teprve začínají. Berou první odpověď jako finální, místo aby ji brali jako první koncept.

Řekněte, co nechcete

Negativní instrukce je pokyn, který místo popisu cíle popisuje, čemu se má výstup vyhnout. „Bez emotikonů.” „Nepoužívej slovo ‚jedinečný’.” „Nezačínej frází ‚v dnešní době’.” Zní to jednoduše, a přesto tenhle typ pokynu lidé v zadání skoro nikdy nepoužívají, přitom umí ušetřit celé kolo přepisování.

Má to jeden háček: modely negaci občas zpracují hůř než pozitivní pokyn, protože musí nejdřív pochopit, co je zakázané, a pak si aktivně hlídat, že to nenapíšou. U dlouhého seznamu zákazů proto pomáhá k negativnímu pokynu přidat i pozitivní variantu. Místo „nepiš dlouze” zkuste „drž se do pěti vět.”

Nejvíc se negativní instrukce hodí tam, kde víte, že model má nějaký zlozvyk. Skoro každý, kdo s AI píše delší dobu, má vlastní seznam slov a obratů, které model tíhne používat pořád dokola. Stačí je jednou pojmenovat a přidat do zadání, a text z první verze bude mít o starost míň.

Nasaďte mu masku: role a persona

Roli jsme zmínili už u základní struktury promptu, tady jde o její hlubší formu. Nastavení persony znamená, že modelu přidělíte celou postavu s vlastním pohledem na věc, ne jen profesní nálepku. „Jsi skeptický redaktor, který u každého tvrzení automaticky hledá, co by mohlo být špatně” povede k jinému textu než „jsi nadšený influencer, co miluje každý nový produkt.”

Persona funguje nejlíp u delších konverzací a kreativních úkolů, kde chcete udržet konzistentní úhel pohledu přes víc zpráv. U jednorázového faktického dotazu je to většinou zbytečná okrasa.

Zajímavý vedlejší efekt persony je, že mění i to, jak moc je model ochotný oponovat. Když mu zadáte roli „přísný korektor, který nešetří kritikou”, dostanete jiný typ zpětné vazby než od výchozího nastavení, kde model bývá spíš vstřícný a snaží se vám vyhovět. Na kontrolu vlastního textu se tenhle typ persony hodí líp než neutrální dotaz „je tenhle text v pořádku?”, na který skoro vždycky odpoví, že ano.

Kdo mluví do ucha pořád: systémový vs uživatelský prompt

Tohle rozlišení mate hodně lidí, přitom je jednoduché. Uživatelský prompt je zpráva, kterou pošlete teď, do aktuálního okna chatu. Systémový prompt je instrukce, která platí po celou dobu konverzace nebo pro celý účet, a nastavuje se jednou, obvykle mimo hlavní chat.

V praxi to znáte jako vlastní instrukce v ChatGPT, nastavení Gemů v Gemini nebo vlastní instrukce v Claude Projects. Jednou tam napíšete „vždycky odpovídej stručně, česky, bez formálních frází” a model se tím řídí ve všech dalších zprávách, aniž byste to psali pokaždé znovu. Systémový prompt je jako pravidlo hry, uživatelský prompt je jeden konkrétní tah.

Jakmile zjistíte, že pořád dokola opakujete stejný pokyn na začátku každého zadání, je to signál, že patří do systémového promptu, ne do každé jednotlivé zprávy.

Oddělte instrukce od materiálu

Praktický zlozvyk, který dělá skoro každý začátečník: napíše pokyn a hned za něj beze švu nalepí dlouhý text, který má model zpracovat. Zápis porady, e-mail od klienta, kus smlouvy. Model pak občas neví, kde končí zadání a kde začíná obsah, a plete si to.

Pomáhá oddělit obě části vizuálně. Napište pokyn, pak prázdný řádek, pak třeba „Text k rozboru:” a za dvojtečku vložte materiál, klidně v uvozovkách nebo za třemi pomlčkami. Model tím dostane jasný signál, co je instrukce a co je surová data, se kterými má pracovat. U kratších zadání je to detail. U delších textů, které vkládáte celé, to rozhoduje o tom, jestli model zpracuje přesně to, co jste chtěli, nebo si domyslí vlastní zadání někde uprostřed vašeho textu.

Šuplík na osvědčené věty

Poslední věc, kterou stojí za to znát, ani není technika, spíš návyk. Když vám nějaké zadání jednou dobře fungovalo, uložte si ho. Vznikne vám postupně osobní knihovna promptů, sbírka ověřených šablon na věci, které děláte pravidelně: týdenní report, odpověď na reklamaci, shrnutí porady. Místo skládání zadání od nuly jen doplníte konkrétní detaily do vzoru, který už jednou fungoval. Jak takovou knihovnu smysluplně stavět a organizovat, to je téma na samostatný text.

Jak stejné zadání vypadá slabě a jak silně

Teorie je fajn, ale nejlíp se to pozná na konkrétních párech.

Slabé zadání: „Napiš popis produktu.” Model neví, o jaký produkt jde, komu se prodává ani jak dlouhý text má být, takže vyplní mezery generickými frázemi o kvalitě a spolehlivosti.

Silnější zadání: „Napiš popis bezdrátových sluchátek do e-shopu s elektronikou. Cílovka jsou lidé do 35 let, co je používají hlavně do MHD a na sport. Zdůrazni výdrž baterie 30 hodin a odolnost proti potu. Tři krátké odstavce, žádné superlativy jako ‚revoluční’ nebo ‚špičkový’.” Model teď ví, komu píše, co má vypíchnout a čemu se vyhnout.

Slabé zadání: „Pomoz mi s kódem, nefunguje mi.” Chybí jazyk, chybí chybová hláška, chybí kontext, co má kód dělat. Model si musí domýšlet skoro všechno, a domýšlení u kódu obvykle znamená špatný odhad.

Silnější zadání: „Píšu v Pythonu skript, co má načíst CSV soubor a spočítat průměr ve sloupci ‚cena’. Dostávám chybu KeyError: ‘cena’. Tady je prvních pět řádků souboru [vložený příklad]. Najdi příčinu a navrhni opravu, vysvětli mi ji jednou větou.” Kontext, konkrétní chyba a jasně řečený formát odpovědi zúží prostor pro chybu na minimum.

Slabé zadání: „Vysvětli mi umělou inteligenci.” Téma je tak široké, že odpověď skončí u obecností, které jste už stokrát četli.

Silnější zadání: „Vysvětli mi rozdíl mezi tréninkem a inferencí u jazykových modelů, jako bych to slyšel poprvé. Použij jednu analogii z běžného života a drž se do deseti vět.” Přesné ohraničení tématu, jasná délka, konkrétní požadavek na formu vysvětlení.

Slabé zadání: „Napiš příspěvek na sociální sítě k otevření nové pobočky.” Nevíte, na jakou síť, jaký má mít tón, ani jestli má obsahovat odkaz nebo termín otevření, takže výsledek bude znít jako z každé druhé firemní stránky.

Silnější zadání: „Napiš příspěvek na Instagram k otevření druhé pobočky kavárny v Brně na Vaňkovce. Otevíráme 5. srpna, první týden je espresso zdarma k jakékoli objednávce. Neformální tón, jedna věta na řádek, na konci výzva přijít se podívat. Bez emotikonů, bez hashtagů.” Konkrétní síť, datum, akce a přesně řečený tón nechávají minimum prostoru pro domýšlení.

Ve čtyřech případech výše je model úplně stejný. Liší se jen to, kolik práce jste mu odvedli předem tím, že jste přesně řekli, co chcete.

Ne každý nástroj to čte stejně

Techniky výše fungují napříč nástroji, ale jejich citlivost na formu zadání se liší. Stejné zadání v ChatGPT, Gemini a Claude nemusí dopadnout stejně, i když je princip totožný.

Modely optimalizované na dlouhé a strukturované instrukce, jako jsou novější verze GPT nebo Claude Opus, si dobře poradí s dlouhým promptem plným nadpisů, odrážek a podmínek. Menší nebo rychlejší modely, určené na krátké běžné dotazy, občas takový detailní pokyn spíš zahltí a část z něj přeskočí. U nich se vyplatí zadání rozdělit na kratší kroky místo jedné dlouhé zprávy s deseti podmínkami.

Rozdíl bývá i v tom, jak moc si model drží kontext z předchozích zpráv v dlouhé konverzaci. Některé nástroje po desítkách zpráv začnou zapomínat detaily z úvodu rozhovoru, jiné mají delší paměť v rámci jednoho vlákna. Když se v dlouhé konverzaci najednou model chová, jako by nevěděl o věci, kterou jste zmínili na začátku, nejde o vaši chybu. Pomůže mu to prostě připomenout znovu, ideálně jednou větou, ne psaním celého zadání od začátku.

Kde lidé při psaní promptů nejčastěji chybují

Nejčastější chyba je zadání jako téma, ne jako úkol. „Napiš o marketingu” není úkol, je to nadpis kapitoly z učebnice. Model na to zareaguje stejně, jako byste na tabuli napsali jen slovo a čekali sepsanou esej.

Druhá chyba je přehnaná důvěra v první odpověď. Lidé berou první výstup jako definitivní, i když je jasně cítit, že by druhé kolo pomohlo. Přitom stačí jedna doplňující věta a výsledek se zlepší, aniž by bylo nutné psát znovu celé zadání.

Třetí chyba je opačný extrém: nacpat do jedné zprávy deset požadavků najednou. Délku, tón, cílovou skupinu, tři témata k pokrytí, formát, jazykovou úroveň a ještě žádost o tabulku na konci. Model se snaží splnit všechno a výsledkem je text, který nesplní pořádně nic. Lepší je rozdělit náročnější úkol na dvě až tři kratší zprávy za sebou.

Čtvrtá chyba se týká kontextu, kterého bývá buď málo, nebo příliš. Někdo napíše jednu holou větu a čeká zázrak. Jiný přilepí do promptu tři stránky nesouvisejících poznámek a model si z nich musí sám vybrat, co je podstatné. Obojí vede ke stejnému výsledku, ke generickému textu.

Pátá věc, kterou vidím často u firemních zadání, je kopírování cizí šablony promptu bez úpravy na vlastní situaci. Šablona z internetu, která fungovala někomu jinému na jiný produkt, se prostě vloží beze změny. Jenže bez konkrétního jména firmy, produktu a cílovky dělá přesně to, před čím tenhle text varuje na začátku: vrací obecnou vatu.

Šestá chyba se objevuje v nové konverzaci, ne v té stejné. Člověk si založí nový chat a naváže tam, jako by si model pamatoval včerejší rozhovor. Nepamatuje, pokud jde o oddělené vlákno. Fakta, na kterých předchozí zadání stálo, jméno firmy, cílovku, zakázaný výraz, je potřeba zopakovat, jinak model odpovídá naslepo a výsledek působí, jako by najednou zapomněl, o čem se bavíte.

Na co si dát pozor

Prompt engineering (technika psaní promptů, tenhle anglický výraz se v češtině zabydlel skoro beze změny) není magie a nemá cenu ho přehánět. U jednoduchého úkolu, jako je oprava jedné věty nebo rychlé shrnutí, stačí obyčejná uživatelská zpráva bez technik. Vytahovat na krátký dotaz chain-of-thought nebo few-shot je jako brát motorovou pilu na ořezání jednoho lístku.

Do promptu nepatří citlivé údaje: rodná čísla, hesla, interní firemní dokumenty, zdravotní záznamy. Kontext, který modelu dáváte, aby lépe pochopil úkol, si držte na úrovni toho, co byste normálně řekli kolegovi u kávy, ne účetní nebo právníkovi v důvěrné poradě.

Delší a propracovanější prompt neznamená automaticky lepší odpověď. Viděl jsem zadání na tři odstavce, která fungovala hůř než jedna přesná věta, protože se v nich ztrácelo, co je vlastně hlavní požadavek. Konkrétnost je důležitější než délka.

A poslední věc: ani nejlíp poskládaný prompt negarantuje, že model nebude halucinovat, tedy vymýšlet si fakta, která znějí věrohodně. Dobré zadání sníží riziko zmatku a nepřesnosti ve formě, ale u jmen, čísel a citací se pořád vyplatí výstup ověřit, ať je prompt sebelepší.

Kontext má i praktický strop. Model umí najednou zpracovat jen omezené množství textu, odborně se mu říká kontextové okno. U běžného chatu je to dnes obvykle desítky až stovky tisíc slov, takže na běžný dokument to bohatě stačí. Když ale vložíte opravdu rozsáhlý materiál, celou knihu nebo stovky stránek podkladů najednou, model si z toho začne vybírat a část informací mu unikne. Dlouhé podklady je lepší nahrávat po částech nebo nejdřív požádat o shrnutí každé části zvlášť.

Pozor i na opačný směr, na text, který vám do promptu vloží někdo jiný nebo který stáhnete z webu. Pokud v něm jsou skryté pokyny adresované modelu, třeba v e-mailu nebo v cizí webové stránce, kterou necháte AI přečíst, model je může vzít jako zadání a začít se jimi řídit, aniž byste to chtěli. Tomuhle riziku se říká prompt injection a u citlivějších úkolů, kdy dáváte modelu přístup k cizímu obsahu, stojí za to výsledek zkontrolovat, ne mu slepě věřit.

Co si z toho vzít do příštího zadání

Nemusíte si pamatovat názvy všech technik. Stačí si před psaním promptu položit čtyři otázky. Kdo má odpovídat? Co přesně má vzniknout? Co model potřebuje vědět o mém konkrétním případě? A jak má výstup vypadat navenek?

Zbytek, few-shot, chain-of-thought, systémové instrukce, jsou nástroje navrch, které sáhnete jen tam, kde běžné zadání nestačí. Podobně jako se řemeslník nejdřív naučí měřit a řezat rovně, a teprve pak sahá po specializovaném nářadí na složitější spoje.

Příště, než napíšete první větu do chatu, zkuste to schválně obráceně. Nejdřív si v hlavě odpovězte na těch čtyři otázky, a teprve pak zadání napište. Rozdíl uvidíte hned v první odpovědi.

Zkuste si to na něčem, co stejně musíte tenhle týden napsat. E-mail, který odkládáte, popis k inzerátu, žádost na úřad. Napište ho nejdřív jako jednu holou větu, tak, jak by vás to normálně napadlo. Pak stejné zadání přepište se všemi čtyřmi kousky skládačky a oba výstupy porovnejte vedle sebe. Rozdíl mezi nimi je celá tahle technika, o nic víc a o nic míň.