Agentní RAG chatbot 4) Jak napsat perfektní system prompt

RAG chatbot - system prompt

V předchozích dílech jsme postavili robustní datové základy a naučili náš systém efektivně vyhledávat relevantní informace. Nyní je čas vdechnout mu život. Musíme definovat jeho osobnost, jeho cíle a pravidla, kterými se bude řídit. Vstupujeme do světa system prompt engineeringu.

Toto je čtvrtý díl seriálu Agentní RAG chatbot, kde krok za krokem rozebírám, jak správně postavit celou architekturu a čemu se naopak vyhnout. Postupně zde najdete odkazy na všechny díly, které si časem můžete přečíst.

Představte si, že do svého týmu přijímáte nového, extrémně talentovaného, ale naprosto nepopsaného kolegu. Má k dispozici veškeré firemní znalosti a neuvěřitelnou schopnost učit se. Jak zajistíte, aby pracoval efektivně, v souladu s firemní kulturou a plnil přesně ty úkoly, které od něj očekáváte?

Dáte mu detailní popis práce, jasně definujete jeho zodpovědnosti, vysvětlíte mu firemní hodnoty a stanovíte pravidla komunikace.

Přesně tuto roli plní system prompt pro jazykový model. Je to jeho základní operační systém, jeho interní kompas. Bez dobře navrženého promptu je i ten nejvýkonnější LLM jen chaotický generátor textu. S precizním promptem se stává cílevědomým expertem.

Anatomie perfektního promptu: Více než jen instrukce

Napsat dobrý system prompt není jen o tom říct AI, co má dělat. Je to o vytvoření komplexního rámce, který řídí každý aspekt jejího chování. Architektura promptu, kterou používám ve svých projektech, typicky zahrnuje následující klíčové sekce:

  1. Role a persona: Kým AI je? Je to přátelský asistent, formální analytik, nebo kreativní partner? Definujeme zde její identitu a základní postoj.
  2. Hlavní cíl: Jaký je primární úkol tohoto AI systému? Čeho má dosáhnout?
  3. Kontext: Jaké klíčové informace o firmě, produktech nebo uživatelích musí AI znát, aby mohla efektivně fungovat?
  4. Pravidla a omezení: Co AI nesmí dělat? Jaké jsou její etické mantinely? Jak má zacházet s citlivými informacemi? Jaké zdroje má preferovat?
  5. Tón a styl komunikace: Má být AI stručná, nebo detailní? Formální, nebo neformální? Má používat specifický firemní jazyk?
  6. Nástroje a znalosti: Jaké má AI k dispozici nástroje (např. přístup k RAG databázi, kalkulačku) a jak je má používat?
  7. Formát výstupu: Jak má vypadat finální odpověď? Má být strukturovaná, obsahovat odrážky, tabulky, nebo specifické formulace?
  8. Příklady (Few-shot prompting): Ukázky ideálních odpovědí na typické dotazy jsou často tím nejlepším způsobem, jak AI naučit požadované chování.

Systematický přístup k tvorbě: Nástroje pro architekta

Tvorba promptu není jednorázový akt, je to iterativní proces. Málokdy se podaří napsat dokonalý prompt napoprvé. Klíčem k úspěchu je systematický přístup a využití správných nástrojů.

Osobně preferuji strukturovaný zápis promptu, například pomocí XML tagů nebo jiného značkovacího jazyka. Každá sekce (Role, Cíl, Pravidla) je jasně oddělena, což usnadňuje orientaci a úpravy.

XML

<role>Jsi expertní analytik kvality...</role>
<goal>Tvým cílem je identifikovat odchylky...</goal>
<rules>
  <rule>Vždy cituj konkrétní normu.</rule>
  <rule>Nikdy nespekuluj, pokud data chybí.</rule>
</rules>

Pro samotné ladění a testování promptů jsou neocenitelné nástroje jako Anthropic Console nebo OpenAI Playground. Umožňují mi testovat různé varianty promptu, porovnávat výstupy různých modelů a iterativně vylepšovat formulace, dokud nedosáhnu požadovaného chování. Tyto nástroje dramaticky zrychlují celý proces a umožňují mi experimentovat s nuancemi, které mohou mít obrovský dopad na finální výsledek.

RAG chatbot - generátor promptu
Anthropic Console – generátor promptu dle jednoduchého zadání

Příklad z praxe: Prompt pro AI právního analytika

Nedávno jsem pracoval na expertním systému, který měl pomáhat analyzovat klientské smlouvy a ověřovat jejich soulad s interními směrnicemi a relevantní legislativou. Systém měl k dispozici rozsáhlou RAG databázi obsahující jak zákony, tak firemní politiky.

První verze promptu byla příliš obecná, ve stylu „Jsi právní asistent, analyzuj smlouvu a najdi problémy, atd..“ AI sice dokázala identifikovat relevantní pasáže v zákonech a směrnicích, ale její výstupy byly spíše shrnutím než skutečnou analýzou.

Chyběla jí schopnost jít do hloubky, identifikovat konkrétní rizika a navrhnout přesné úpravy textu. Bylo jasné, že musím prompt dramaticky zpřesnit a dát AI mnohem detailnější zadání.

Celý proces ladění probíhal iterativně pomocí nástrojů jako Anthropic Console. Zkoušel jsem různé formulace, přidával a ubíral instrukce a sledoval, jak se mění chování modelu. Klíčové změny, které vedly k úspěchu, byly tyto:

Precizní definice role

Místo obecného právního asistenta jsem AI definoval jako vysoce pečlivého Compliance Officera se specializací na smluvní právo a interní směrnice společnosti XYZ. Tvým úkolem je revize smluv s cílem minimalizovat právní rizika pro společnost. Tím jsem nastavil očekávanou úroveň detailu a zodpovědnosti.

Implementace striktních pravidel

Přidal jsem několik klíčových pravidel, která AI musela bezpodmínečně dodržovat. Například:

    • Vždy cituj přesný paragraf zákona nebo číslo interní směrnice, na základě které identifikuješ riziko.
    • Pokud je klauzule ve smlouvě nejednoznačná, explicitně na to upozorni a navrhni preciznější formulaci.
    • Nikdy neposkytuj obecné právní rady. Zaměř se výhradně na soulad s dodanými zdroji (zákony, směrnice).

    Definice strukturovaného výstupu

    Toto byl další důležitý krok. Místo volného textu jsem AI nařídil generovat výstup v přesně definovaném formátu, ideálně pomocí XML tagů pro snadné strojové zpracování:

    <analysis>

    <clause_id>Článek 3.1</clause_id>

    <risk_level>Vysoké</risk_level>

    <issue_description>Klauzule o ukončení smlouvy je v rozporu s § XXX Občanského zákoníku.</issue_description>

    <relevant_source>Občanský zákoník, § XXX</relevant_source> <suggested_change>Navrhuji přeformulovat klauzuli takto: ‚…'</suggested_change>

    </analysis>

    Přidání příkladů (Few-shot prompting)

    Do promptu jsem vložil konkrétní příklady, jak má vypadat ideální analýza problematické klauzule. To AI pomohlo pochopit nejen formát, ale i požadovanou úroveň detailu a argumentace.

    Po několika hodinách iterativního ladění a testování různých variant jsem dosáhl stavu, kdy AI systém dokázal spolehlivě analyzovat smlouvy, identifikovat konkrétní rizika podložená zdroji a navrhovat přesné úpravy. Z generického chatbota se stal skutečný digitální Compliance Officer. Tento příklad dokonale ilustruje, že system prompt není jen text, je to architektura myšlení.

    Příklad z praxe 2: Past organicky rostoucího promptu

    U jiného projektu, tentokrát pro AI asistenta v oblasti marketingu, jsem narazil na opačný problém. Původní prompt byl jednoduchý, ale jak jsme postupně přidávali nové funkce a požadavky na specifické chování v různých situacích, prompt organicky narostl do délky několika normostran. Každý nový požadavek znamenal přidání další instrukce, často bez ohledu na ty předchozí.

    Časem jsem zjistil, že systém začíná být nespolehlivý. Některé instrukce si vzájemně odporovaly, jiné byly redundantní a celková struktura byla chaotická. Paradoxně, čím delší a detailnější prompt byl, tím hůře AI fungovala, protože už nedokázala jasně identifikovat, co je vlastně prioritou.

    Řešením byl radikální řez. Vzal jsem celý třístránkový prompt, systematicky jsem ho prošel, odstranil všechny duplicity a protichůdné instrukce a celý ho přepsal do přehledné XML struktury.

    Výsledkem byl prompt, který byl o třetinu kratší, ale řádově efektivnější a předvídatelnější. Tento příklad dokonale ilustruje, že prompt není statický dokument. Je to živý organismus, který vyžaduje pravidelnou údržbu a refactoring, stejně jako jakýkoliv jiný kód.

    Byznys přínos

    Naučili jsme se, že system prompt není jen technický detail. Je to strategický nástroj, kterým vtiskneme AI její účel, osobnost a firemní DNA. Je to místo, kde se technologie potkává s byznysem.

    Byznysový přínos precizně navrženého promptu je obrovský. Místo nepředvídatelného a potenciálně rizikového nástroje získáte spolehlivého digitálního kolegu. Kolegu, který jedná v souladu s vašimi pravidly, mluví vaším jazykem a neúnavně pracuje na dosažení vašich cílů. Investice do prompt engineeringu je investicí do předvídatelnosti, spolehlivosti a kvality vašeho AI systému.

    V příštím díle se podíváme na neméně důležitý výběr samotného motoru, tedy jazykového modelu.

    Díly seriálu

    Obsah článku

    Líbí se Vám obsah?

    Odebírejte Newsletter, ať vám nic neunikne.

    Vývoj AI

    Vývoj interních zabezpečených AI systémů.

    Sledujte mě na sítích.

    Odebírejte Newsletter, ať vám nic neunikne.

    Podobné články