Otevře se na nové kartě
Základy
Aktualizováno
čtení

Co je RAG: jak AI chatbot odpovídá z vašich podkladů

RAG je způsob, jak AI chatbot odpovídá z vašeho webu a dokumentů místo z hlavy. Vysvětlení pro majitele firmy: tři kroky, ukázka na webu firmy, srovnání s trénováním a otázky na dodavatele.

Obálka článku Co je RAG: jak AI chatbot odpovídá z vašich podkladů

RAG (z anglického retrieval-augmented generation) je postup, při kterém AI chatbot před každou odpovědí nejdřív vyhledá ve vašich podkladech pasáže, které se týkají dotazu, předá je jazykovému modelu a ten z nich napíše odpověď. Chatbot tak neodpovídá „z hlavy“, ale z vašeho webu, ceníku a dokumentů. Ví o vaší firmě to, co mu dáte, a odpovědi ovlivníte tím, že upravíte podklady.

Pojem zní technicky, princip je ale jednoduchý. Vysvětlím ho bez programátorské hantýrky, ukážu ho na příkladu z webu malé firmy a na konci najdete otázky, které se vyplatí položit každému dodavateli chatbota. Píšu z pohledu člověka, který chatbota postaveného na RAG vyvíjí.

Co znamená zkratka RAG? Vyhledat, doplnit, odpovědět

Zkratka RAG znamená retrieval-augmented generation, volně přeloženo „generování odpovědi doplněné o vyhledávání“. Každé ze tří slov popisuje jeden krok:

  • Retrieval (vyhledání): systém najde v podkladech pasáže, které se týkají otázky.
  • Augmented (doplněné): nalezené pasáže se přidají k otázce, kterou dostane jazykový model.
  • Generation (vytvoření): model z otázky a pasáží napíše odpověď běžnou řečí.

Jazykový model je program, který umí číst a psát text. Na stejném principu stojí i ChatGPT. Sám od sebe o vaší firmě nic spolehlivého neví. RAG je způsob, jak mu ve správnou chvíli podat správné informace. Pokud vás zajímá, co je chatbot obecně a jaké typy existují, začněte článkem co je chatbot.

Ustálený český překlad se nevžil, i v češtině se píše RAG. V nabídkách nástrojů ho potkáte i pod popisy jako „chatbot s vlastními daty“ nebo „chatbot z dokumentů“. Většinou jde o totéž.

Jak si RAG představit? Jako zkoušku s otevřenou knihou

RAG nejlíp vystihuje rozdíl mezi dvěma druhy zkoušek.

Bez RAG odpovídá jazykový model jako student u zkoušky nazpaměť. Spoléhá na to, co si zapamatoval z obrovského množství textů. Obecné věci ví dobře, ale váš ceník, otevírací dobu ani podmínky reklamace si zapamatovat nemohl. Nikdy je neviděl.

S RAG jde o zkoušku s otevřenou knihou. Než student odpoví, nalistuje v učebnici kapitolu, která se otázky týká, a odpověď postaví na ní. Učebnicí jsou vaše podklady. Dobrá odpověď pak nezávisí na tom, co si model pamatuje, ale na tom, jestli správnou stránku najde a jestli je na ní správná informace.

Přirovnání má i druhou polovinu, na kterou se rádo zapomíná: když v učebnici kapitola chybí nebo je v ní chyba, nepomůže ani otevřená kniha. K tomu se ještě dostaneme.

Jak RAG funguje krok za krokem? Jednou příprava, pak tři kroky u každého dotazu

RAG má jednu přípravnou fázi, která proběhne při nahrání podkladů, a tři kroky, které se opakují u každé otázky návštěvníka.

Příprava podkladů (jednou). Systém načte váš web, PDF nebo vlastní texty a rozdělí je na menší části, zhruba po odstavcích. Každou část uloží tak, aby šla později najít podle významu, ne jen podle shodných slov. Odborně se tomu říká embedding: text se převede na řadu čísel, která zachycuje jeho význam. Úložišti takto zpracovaných částí se říká vektorová databáze. Víc z techniky vědět nepotřebujete.

U každého dotazu pak proběhnou tři kroky:

  1. Vyhledání. Návštěvník napíše „v kolik v sobotu zavíráte?“. Systém v připravených částech najde ty, které se k otázce významově hodí, třeba odstavec s otevírací dobou. Najde ho zpravidla i tehdy, když je v něm jen „So 8–12“ a slovo „zavíráte“ tam vůbec není.
  2. Doplnění kontextu. Nalezené části se vloží k otázce spolu s instrukcemi, jak má bot odpovídat: jakým tónem, jak dlouze a co dělat, když odpověď v podkladech není. Tomuto balíku textu, se kterým model při odpovídání pracuje, se říká kontext.
  3. Odpověď. Jazykový model si přečte otázku, nalezené pasáže i instrukce a napíše odpověď: „V sobotu máme otevřeno od 8 do 12 hodin.“

Celé se to obvykle odehraje během několika sekund a návštěvník z toho vidí jen výsledek.

Jak RAG vypadá na webu malé firmy? Otázka na cenu, odpověď z ceníku

Představte si instalatérskou firmu, která má na webu stránku se službami, ceník v PDF a stránku o tom, kam jezdí. V neděli večer jí přes chat na webu napíše zákazník: „Kolik stojí výměna baterie u umyvadla a jezdíte i do Berouna?“

Chatbot s RAG postupuje takhle (částky jsou zástupné, příklad je smyšlený):

KrokCo se dějeV příkladu
Vyhledánínajde pasáže, které se týkají otázkyřádek ceníku „Výměna baterie (umyvadlo, dřez): X Kč“ a odstavec o oblasti, kam firma jezdí, ve kterém je Beroun
Doplnění kontextupasáže a instrukce dostane jazykový model„Vykej, odpovídej stručně, ceny ber jen z ceníku, na konci nabídni termín.“
Odpověďmodel z toho napíše odpověď„Výměna baterie u umyvadla stojí podle ceníku X Kč, dopravu účtujeme zvlášť. Do Berouna jezdíme. Mám vám předat dotaz na termín?“

A teď varianta, kterou si vyzkoušejte u každého chatbota. Zákazník se zeptá „Děláte i o víkendu?“ a v podkladech o víkendech nic není. Vyhledávání nenajde nic, o co by se model mohl opřít. Dobře nastavený bot přizná, že tuhle informaci nemá, a nabídne kontakt. Špatně nastavený odpoví odhadem. Kterou cestou se bot vydá, nerozhoduje RAG sám o sobě, ale instrukce a podklady.

Čím se RAG liší od trénování modelu a od ChatGPT? Tím, odkud AI bere fakta

Majitelé firem se často ptají, jestli by nebylo lepší chatbota „vytrénovat“ na firemních datech, nebo jestli nestačí ChatGPT. Jde o tři různé přístupy:

Obecný ChatGPT (bez vašich podkladů a bez vyhledávání na webu)Dotrénovaný model (fine-tuning)RAG
Odkud bere fakta o firměz toho, co se naučil z veřejných textůz dat, na kterých byl dotrénovaný, jsou „zapečená“ v modeluz podkladů, které vyhledá u každého dotazu
Zná váš aktuální ceníknejen ve stavu z doby trénováníano, pokud je ceník v podkladech aktuální
Když se něco změnínejde ovlivnitmodel se musí trénovat znovuvyměníte nebo upravíte podklad
Co je potřebanic, ale o firmě neví nic spolehlivéhopřipravená data, odborník, výpočetní výkonnahrát podklady a otestovat
Na co se hodíobecné otázky, pomoc s texty pro vásstyl, formát, specializované úlohyodpovědi o konkrétní firmě
Dá se dohledat, z čeho odpověď vycházínenev principu ano, odpověď stojí na nalezených pasážích

Dotrénování mění samotný model. Naučí ho psát určitým stylem nebo zvládat specializovaný typ úlohy. Na fakta, která se mění, se hodí špatně: každá změna ceny by znamenala trénovat znovu a model si naučená fakta stejně nepamatuje doslova. Pro odpovídání o konkrétní firmě se proto hodí spíš RAG, kde stačí vyměnit podklad.

A ChatGPT? O vaší firmě sám nic spolehlivého neví. Když mu nahrajete vlastní soubory, umí z nich čerpat, ale pořád je to nástroj pro vás, ne okno pro zákazníky na vašem webu. Rozdílu se podrobně věnuje článek ChatGPT pro firmy, nebo chatbot na webu.

Proč RAG omezuje vymýšlení, ale nespasí špatné podklady? Co do něj dáte, to z něj dostanete

RAG výrazně zmenšuje prostor pro vymýšlení, protože model má odpověď před sebou a nemusí ji lovit v paměti. Proč si jazykové modely vůbec vymýšlejí a jak se tomu brání, rozebírám v článku proč chatboty vymýšlí. Tady to opakovat nebudu.

Důležitější je, kde RAG končí. Chyby chatbotů postavených na RAG mívají čtyři typické příčiny:

  • Informace v podkladech chybí. Vyhledávání nemá co najít. Bot buď přizná, že neví, nebo, pokud mu to instrukce nezakazují, improvizuje.
  • Podklady si odporují. Na webu je nový ceník, v PDF starý. Vyhledávání může najít oba a model nepozná, který platí.
  • Informace je schovaná. Cena jen v obrázku, podmínky rozházené po třech stránkách, tabulka, které bez okolního textu nejde rozumět. Co systém nepřečte nebo nenajde, to nepoužije.
  • Otázka potřebuje úsudek. „Vyplatí se mi spíš varianta A, nebo B?“ RAG najde fakta, ale rozhodnutí za vás neudělá. A neměl by.

Pravidlo z toho plyne jednoduché: kvalitu odpovědí určují podklady. Než chatbota spustíte, projděte web očima zákazníka a doplňte, co chybí. Co do podkladů patří a jak je připravit, popisuji v článku co do znalostní báze patří a jak ji připravit.

Tip!

Ceny, otevírací dobu a podmínky mějte na webu jako běžný text, ne jen v obrázku nebo grafice. Text chatbot přečte spolehlivě, obrázek často vůbec.

Na co se ptát dodavatele chatbota? Sedm otázek, které odhalí slabá místa

Zkratka RAG v nabídce sama nic nezaručuje. Rozdíly jsou v detailech a na ty se vyplatí zeptat:

  1. Odpovídá bot jen z mých podkladů, nebo smí přidávat obecné znalosti?
  2. Jaké podklady umí načíst (web, PDF, vlastní texty, otázky a odpovědi) a kolik jich?
  3. Jak se podklady aktualizují, když změním ceník: automaticky, ručně, nebo vůbec?
  4. Co bot udělá, když odpověď v podkladech nenajde, a můžu to nastavit?
  5. Můžu si odpovědi vyzkoušet před spuštěním a počítá se testování do limitu?
  6. Trénuje se nějaký model na mých datech? Kde se data ukládají a kdo dotazy zpracovává?
  7. Jak zjistím, že bot odpověděl špatně, a jak to opravím?

Poctivý dodavatel odpoví na všechno konkrétně. Pokud na čtvrtou otázku slyšíte „náš bot se nemýlí“, je to důvod zbystřit.

Jak je to v Odpoviu? Odpovědi z vašeho webu a dokumentů

Odpovio je chatbot postavený na tomhle principu. Když zákazník položí otázku, Odpovio nejdřív hledá relevantní informace ve vašich podkladech a z toho, co najde, sestaví odpověď v tónu, který jste nastavili. Na otázky z předchozí sekce odpovídám takhle:

  • Podklady: web (jedna stránka, nebo celý web), PDF a textové soubory do 10 MB, vlastní texty a otázky s odpověďmi. Odpovio z nich vezme text, rozdělí ho na části a uloží do znalostní báze. Rozsah podle plánu: Starter až 10 zdrojů a 50 stránek webu, Plus až 200 zdrojů a 300 stránek, Pro až 1 000 zdrojů a 1 000 stránek.
  • Aktualizace: web a dokumenty se načtou jednou při přidání. Když změníte ceník, starý zdroj smažete a přidáte ho znovu. Vlastní texty a otázky s odpověďmi upravíte kdykoli přímo v aplikaci.
  • Když odpověď nenajde: jak se má zachovat, nastavíte sami, například přiznat, že informaci nemá, a nabídnout kontakt. Návštěvník může požádat o člověka: dotaz vám přijde e-mailem, od plánu Plus můžete rozhovor převzít i v živém chatu.
  • Pravidla: pravidla, která má bot dodržovat, napíšete běžnou češtinou, třeba „neslibuj slevy“ nebo „nepotvrzuj termíny“.
  • Testování: v testovacím chatu v aplikaci se zeptáte jako zákazník. Jeho zprávy nečerpají limit.
  • Data: data ukládáme v EU (Railway), odpovědi generuje OpenAI API, které data zpracovává i v USA a netrénuje na nich.
  • Kontrola: v aplikaci vidíte historii konverzací s přepisem, hodnocení od návštěvníků a AI shrnutí každého rozhovoru. Jak najít a opravit špatnou odpověď, popisuje návod co dělat, když bot odpovídá špatně.

Celý postup od zadání webu po vložení chatu na stránky najdete na stránce jak Odpovio funguje krok za krokem, všechny funkce v přehledu funkcí Odpovia.

Shrnutí

RAG je způsob, jak AI chatbot odpovídá z vašich podkladů: nejdřív vyhledá, pak doplní kontext, nakonec odpoví. Na rozdíl od obecného ChatGPT ví o vaší firmě to, co mu dáte, a na rozdíl od dotrénovaného modelu ho aktualizujete výměnou podkladu. Kvalitu odpovědí ale pořád určují podklady a instrukce. Při výběru chatbota se proto neptejte jen, jestli používá RAG, ale z čeho odpovídá, jak se aktualizuje a co udělá, když odpověď nenajde.

Často kladené otázky

RAG je postup, při kterém AI chatbot před odpovědí vyhledá v podkladech firmy pasáže k otázce a jazykový model z nich napíše odpověď. Funguje jako zkouška s otevřenou knihou: bot neodpovídá z paměti, ale z toho, co najde ve vašem webu a dokumentech.

RAG je zkratka anglického retrieval-augmented generation, volně „generování odpovědi doplněné o vyhledávání“. Retrieval je vyhledání pasáží, augmented jejich přidání k otázce a generation napsání odpovědi jazykovým modelem.

Trénování (fine-tuning) mění samotný model a hodí se hlavně na styl nebo specializované úlohy. RAG model nemění, jen mu ke každé otázce podá aktuální podklady. Když změníte ceník, u RAG stačí vyměnit podklad, dotrénovaný model byste museli trénovat znovu.

Výrazně to omezí, ale stoprocentně ne. Model má odpověď před sebou v podkladech, takže nemusí hádat. Když ale informace v podkladech chybí nebo si podklady odporují, záleží na instrukcích, jestli bot přizná, že neví. Podrobně to rozebírá článek proč chatboty vymýšlí.

U hotových nástrojů ne. Vyhledávání, uložení podkladů i jazykový model zajišťuje dodavatel. Vy nahrajete web a dokumenty, nastavíte tón a na web vložíte jeden řádek kódu.

U RAG se model na vašich podkladech netrénuje, podklady jen čte ve chvíli, kdy odpovídá. V Odpoviu data ukládáme v EU (Railway), odpovědi generuje OpenAI API, které data zpracovává i v USA a netrénuje na nich.

Pokaždé, když se změní něco, na co se zákazníci ptají: ceny, otevírací doba, podmínky nebo nabídka služeb. Chatbot s RAG odpovídá podle toho, co má v podkladech, takže starý ceník znamená starou odpověď. Doporučuji brát úpravu podkladů jako součást každé změny na webu.

Adam KotalaZakladatel Odpovia

Stavím Odpovio, aby firmy zvládly odpovídat zákazníkům i mimo pracovní dobu bez dalšího člověka na chatu. Píšu o tom, co v provozu funguje a co ne.

Ať se zákazníci ptají. Odpovědi už máte.

Kartu zadáte při registraci. Zkouška je jednou na kartu; pokud už byla využitá, platíte hned. Jinak první platba proběhne 8. den. Zrušíte-li během 7 dní, neplatíte nic.

Vyzkoušet na 7 dní zdarma

Chcete to vidět naživo? Domluvit demo

Používáme nezbytné cookies, aby web fungoval. S vaším souhlasem i analytické a marketingové cookies, abychom věděli, které stránky lidem pomáhají, a mohli měřit reklamu. Souhlas můžete kdykoli změnit v Nastavení cookies.

Přijmout vše Přijmout pouze nezbytné