Zeptal jsem se chatbota, jak posoudit nájemní smlouvu, kterou mi kamarád poslal krátce před podpisem. Dostal jsem tři odstavce obecného přehledu, co všechno taková smlouva obvykle obsahuje. Použitelné asi jako brožura z realitky.

Pak jsem zkusil totéž jinak. Napsal jsem: „Jsi zkušený právník, který dvacet let kontroluje nájemní smlouvy klientům před podpisem. Podívej se na tenhle text a řekni, co by tě na něm znepokojilo.” Odpověď byla najednou úplně jinde. Konkrétní věta ze smlouvy. Konkrétní otázka na výpovědní lhůtu. Konkrétní doporučení, co si nechat vysvětlit, než se podepíše.

Stejný model, stejná smlouva, jiný výsledek. Rozdíl udělalo pár slov na začátku zprávy.

Co se v modelu vlastně změní

Model se nestane doopravdy právníkem. Nezíská žádné nové znalosti, které by neměl už předtím. Změní se to, jaký vzorec odpovědi si vybere jako nejpravděpodobnější pokračování.

Když napíšete „jsi zkušený právník”, model si aktivně vybírá slovník, strukturu i priority, které v jeho trénovacích datech obvykle patří k právnickým stanoviskům, a upozadí ten obecný encyklopedický tón, který jinak nasadí, když ho o nic konkrétního nepožádáte. V žargonu kolem umělé inteligence se tomu říká přidělení role, anglicky role prompting.

Je to podobné, jako když stejnému člověku zadáte tutéž otázku dvakrát, jednou jako novináři a podruhé jako kamarádovi u piva. Fakta budou stejná. Způsob, jak je poskládá a co zdůrazní, bude jiný.

Model si roli nepamatuje jako fakt uložený někde stranou, ale jako součást textu, který znovu čte při generování každého dalšího slova. Proto se vyplatí nechat ji viditelně na začátku rozhovoru a nemazat ji uprostřed. Když se roli v dlouhém rozhovoru „ztratíte” mezi desítkami dalších zpráv, model se často nenápadně vrátí k tomu neutrálnímu, encyklopedickému tónu, se kterým začínal.

Role často ovlivní i délku a strukturu odpovědi, ne jen slovník. Zkušený právník obvykle odpovídá věcně a v bodech, protože takhle mluví ve skutečných konzultacích. Nadšený učitel spíš rozepisuje příklady a povzbuzuje. I tohle je součást vzorce, který si model podle zadané role vybírá.

V běžném chatovacím okně roli napíšete jednoduše jako první větu zprávy, přesně jak to dělám v příkladech níž. Ve vývojářských nástrojích, které s modelem pracují přes rozhraní zvané API, existuje pro tohle přímo vyhrazené místo, takzvaná systémová zpráva (system message). Nastaví se jednou na začátku a platí pro celý rozhovor, aniž byste ji museli opakovat u každé další otázky.

Pro běžného uživatele chatbota na webu nebo v mobilu je rozdíl jen kosmetický. Buď roli napíšete do první zprávy, nebo, pokud to rozhraní umožňuje, do nastavení vlastních instrukcí, které se pak automaticky připojí ke každému novému rozhovoru. Výsledek je stejný, jen se o krok míň opakujete.

Jak roli napsat, aby fungovala

Buďte konkrétní o profesi a zkušenosti, ne obecní. Věta „jsi expert” modelu nedodá skoro nic, protože nic přesně neurčuje. Věta „jsi zkušená účetní, která dvacet let řeší přiznání pro drobné živnostníky” už určuje slovník i to, čeho si model všímá jako první.

Řekněte, komu role vlastně mluví. Odpověď pro kolegu z oboru vypadá jinak než odpověď pro člověka, který slyší odborný pojem poprvé v životě. „Vysvětli to člověku bez ekonomického vzdělání” dělá v kombinaci s rolí velký rozdíl.

Nastavte tón. Kritický korektor hledá chyby a nešetří slovy. Trpělivý mentor vysvětluje pomalu a bez despektu. Obojí může být „zkušený učitel”, ale výsledek bude odlišný podle toho, jaký přístup si vyžádáte.

Kombinujte roli s konkrétním úkolem v téže zprávě. Role bez úkolu nic neudělá, model si prostě jen řekne, kým má být, a čeká na zadání. Nejlíp funguje jedna zpráva, kde je role i to, co s ní má model udělat, pohromadě.

Malé slovo u profese umí změnit výsledek stejně jako profese samotná. „Jsi kritický korektor” a „jsi nadšený copywriter” povedou u téhož textu k jiné zpětné vazbě. Kritik se zastaví u každé nejasné věty a napíše, proč nefunguje. Nadšenec spíš najde, co se mu líbí, a teprve pak něco navrhne opravit, pokud se ho o kritiku vyloženě nepožádáte. Ani jeden přístup není špatně, ale k rychlé opravě textu před odesláním se hodí spíš ten první.

Příklady, které v praxi fungují

Kontrola textu: „Jsi zkušený korektor českého textu. Projdi tenhle e-mail a najdi gramatické chyby i místa, kde věta zní neobratně. Nekomentuj obsah, jen jazyk.” Model se přestane plést do obsahu a soustředí se výhradně na formu, přesně podle zadání.

Finanční přehled: „Jsi opatrný finanční poradce, který mluví s člověkem bez ekonomického vzdělání. Vysvětli mi rozdíl mezi fixní a variabilní úrokovou sazbou u hypotéky na jednoduchém příkladu.” Slovo opatrný tady odvádí kus práce samo, model se vyhne přehnaně sebejistým doporučením a raději zůstane u vysvětlení principu.

Učení: „Jsi trpělivý učitel matematiky na základní škole. Vysvětli mi zlomky tak, jak bys to vysvětlil dvanáctiletému žákovi, který se v tom ztrácí.” Tenhle prompt spolehlivě zplaští odbornou hantýrku, kterou by model jinak použil, kdyby se ho na totéž zeptal dospělý bez upřesnění.

Kontrola kódu: „Jsi zkušený senior vývojář, který dělá code review kolegovi juniorovi. Podívej se na tuhle funkci a řekni, co bys na ní změnil a proč.” Tahle role navíc modelu naznačí, že čekáte konstruktivní kritiku, ne jen zdvořilé potvrzení, že kód vypadá v pořádku.

Role se navíc dobře kombinuje s jasným zadáním formátu. „Jsi stručný technický copywriter, napiš maximálně pět vět” spojí tón i formu do jedné instrukce. Funguje to spolehlivěji než dvě oddělené věty, protože model dostane oba požadavky najednou a nemusí je dodatečně slaďovat.

Kdy role nepomůže, nebo dokonce škodí

Role nedodá modelu fakta, která nezná. Nemůže nahradit chybějící zdroj ani opravit mezeru ve znalostech. Když se model zeptáte na přesné znění zákona nebo aktuální úrokovou sazbu konkrétní banky, role mu nepomůže uhodnout správné číslo.

Horší je jiná věc. Autoritativní role dokáže model naladit do sebevědomějšího tónu, i když si obsah pořád jen domýšlí. Odpověď od „zkušeného lékaře” zní jistě a strukturovaně, ale je stejně náchylná k omylu jako odpověď bez role. Jenom to na první poslech nepoznáte, protože forma vypadá důvěryhodně.

Přehnaně široká nebo protichůdná role taky nepomůže. „Jsi nejlepší expert na všechno” je prázdná fráze, model podle ní nemá z čeho vybírat konkrétní vzorec chování. Funguje to obráceně, čím užší a konkrétnější role, tím jasnější posun v odpovědi.

Nepomáhá ani napěchovat do jedné zprávy víc rolí najednou, třeba právníka, psychologa a marketéra zároveň. Model pak neví, který slovník upřednostnit, a odpověď skončí kdesi uprostřed, bez pořádného využití jednoho z těch stylů.

Přílišné zúžení role má i svou stinnou stránku. Model se pak drží jen úzkého úhlu pohledu a snadno přehlédne širší souvislost, kterou by čekal od člověka se zdravým rozumem, ne jen s jedním diplomem v kapse. Kritik přezkoumávající smlouvu vám nemusí říct, že byste možná neměli podepisovat vůbec nic, protože o tom se ho nikdo neptal.

Tahle technika platí hlavně pro textové zadání. U generování obrázků role nefunguje stejně, tam model nepotřebuje osobnost, potřebuje popis scény. Jak na to, píšu v článku Jak napsat prompt pro generování obrázku (s příklady).

Na co si dát pozor

Přidělenou roli nikdy neberte jako skutečnou kvalifikaci. „Jsi lékař” neznamená, že odpověď nahradí diagnózu od člověka se skutečným diplomem. U zdraví, práva, daní a peněz si klíčová čísla, paragrafy a doporučení vždycky ověřte jinde, role na tom nic nemění.

Dobrý doplněk k roli je věta, ať model řekne, když si něčím není jistý. „Pokud si nejsi jistý, řekni to, nehádej” v kombinaci s rolí zvyšuje šanci, že se místo sebejistě znějícího výmyslu dočkáte upřímného přiznání mezery ve znalostech.

Roli se vyplatí kombinovat s úkolem, kde chcete, aby model odpověděl rozhodněji a věcněji v rámci jedné zprávy, i když pořád jde jen o text, ne o skutečnou akci. Rozdílu mezi tím, kdy AI jen mluví a kdy skutečně jedná, se věnuji v článku Chatbot vs AI agent: kde končí odpověď a začíná čin.

Kostým, ne diplom

Přidělená role je jako kostým, který si model obleče na jeden konkrétní rozhovor. Mluví jinak, řadí si myšlenky jinak, všímá si jiných věcí, než kdyby přišel bez příprav. Diplom v té kapse ale nemá.

Pro každodenní psaní, vysvětlování a první orientaci v tématu vám tahle jedna věta na začátku zprávy ušetří pár kol upřesňování. Tam, kde jde o peníze, zdraví nebo paragrafy, nechte kostým kostýmem a poslední slovo si nechte od člověka, který za svůj titul skutečně skládal zkoušky.