RAG (Retrieval-Augmented Generation): princip generování založeného na externích zdrojích

RAG (Retrieval-Augmented Generation): Princíp generovania opretého o externé zdroje

Co je RAG a proč mění pravidla hry

Retrieval-Augmented Generation (RAG) je architektura, v níž velký jazykový model (LLM) generuje odpověď až poté, co na základě uživatelského dotazu vyhledá relevantní fakta v externích zdrojích. Propojení vyhledávání a generování zásadně omezuje halucinace, zlepšuje aktuálnost a umožňuje citovat zdroje. V kontextu optimalizace webů pro ChatGPT/LLM (AIO/AEO) a moderního SEO je RAG mostem mezi autoritativním obsahem na webu a modely, které zprostředkovávají odpovědi.

Komponenty RAG: pohled end-to-end

  • Ingest a normalizace: extrakce z HTML/API/CSV/PDF, čištění, deduplikace, generování metadat.
  • Indexace: vektorový index (embeddingy) + textový index (BM25) + filtry metadat.
  • Retrieval: výběr pasáží podle dotazu (dense, sparse, hybrid), reranking a diverzifikace.
  • Orchestrace promptu: vložení vybraných pasáží a pokynů do systému (templating, role).
  • Generování s citacemi: LLM vytváří odpověď, odkazuje na source_url, shrnuje a uvádí omezení.
  • Feedback a monitoring: měření kvality, výpadků, latence, aktualizace indexu (freshness).

Propojení s AIO/AEO a moderním SEO

RAG posouvá SEO od klíčových slov k citovatelným faktům a dostupným datům. Pro majitele webů je cíl jasný: poskytovat strojově čitelný, stabilně adresovatelný a licencovaný obsah, který lze bezpečně načíst do řetězců RAG používaných asistenty. Pro marketéry to znamená měřit share-of-voice v odpovědích AI a optimalizovat sourceability (schopnost být vybrán jako zdroj).

Ingest: od HTML k čistým pasážím

  • Extrahujte „content_text“: verzi bez navigace, reklamy a boilerplate; originál uchovejte také pro citace.
  • Stabilní URL a kotvy: generujte kotvy pro jednotlivé sekce (#kapitola-tema) pro přesné citace.
  • Normalizujte jednotky a data: ISO 8601, jednotky SI, měřítka a místní formáty vyznačte v metadatech.
  • Odstraňte duplicity: kanonikalizujte verze, jazykové mutace propojujte prostřednictvím hreflang.

Chunking a kontextová okna

  • Velikost chunku: 300–1 200 tokenů podle domény; kratší pro definice, delší pro metodiky.
  • Překryv: 10–20 % pro zachování souvislostí (slovníky pojmů, vzorce, definice).
  • Semantický vs. pevný chunking: segmentujte podle nadpisů a logických celků, nikoli podle pevné délky.
  • Rich metadata: jazyk, autor, datum, verze, typ obsahu, schéma kategorií, licenční omezení.

Embeddingy a indexy: hybridní přístup je základ

  • Dense (vektorové) vyhledávání: zachytí sémantiku, synonyma a parafráze.
  • Sparse (BM25): přesná klíčová slova, kódy norem, zkratky, čísla modelů.
  • Hybrid: spojte skóre (např. váženým součtem) a použijte MMR nebo diverzifikaci, abyste pokryli více úhlů pohledu.
  • Reranking: malý cross-encoder pro 10–50 kandidátů výrazně zvýší přesnost top-k.

Retrieval: od dotazu k důkazům

  • Reformulace dotazu: přeformulování nejednoznačných dotazů (agent „query-rewriter“).
  • Filtry a fasetová pole: obor/jazyk/rok; u norem a zákonů je filtr podle verze nezbytný.
  • Časové povědomí: upřednostněte novější verze (pole valid_from, valid_to), ale historické citace zachovejte.
  • Citovatelné snippety: vraťte URL + kotvu + krátký výňatek (2–3 věty) jako důkaz.

Orchestrace promptu a řízení generování

  • Pokyny pro „grounded answers“: model smí uvádět pouze to, co je podloženo důkazy; jinak má odpovědět „nevím“ + doporučit další zdroje.
  • Přísné citace: ke každému tvrzení obsahujícímu čísla/terminologii připojte [1]… s URL a verzí dokumentu.
  • Formát odpovědi: nejprve stručná odpověď, potom zdůvodnění a citace, nakonec omezení a datum platnosti.
  • Kontrola délky: přizpůsobte výstup režimu o 50/150/300 slovech pro použití typu „answer-first“.

Minimalizace halucinací

  • Strict mode: vynucujte pravidlo „no-source → no-claim“; chybí-li důkaz, vyžádejte další vyhledávání.
  • Rozpor mezi zdroji: při rozporu uveďte obě verze, data a vysvětlete, která platí (lex-posterior, lex-specialis).
  • Numerická fakta: vyžadujte shodu alespoň ve dvou nezávislých pasážích nebo v primární tabulce.

Aktuálnost: freshness, delta a reindexace

  • Delta ingest: zpracujte pouze změněné dokumenty podle ETag nebo last_modified.
  • Priority fronty: upřednostňujte autoritativní domény, sekce „novinky“, changelogy, ceníky a normy.
  • Expirace embeddingů: znovu vytvořte embeddingy po změně nebo po uplynutí stanovené doby (např. 30–90 dní) podle volatility domény.

Licence, TDM a compliance

  • Legální přístup: respektujte autorská práva, licence (CC-BY, ODbL) a výjimky TDM.
  • PII a citlivá data: odstraňujte osobní údaje z indexu; logy pseudonymizujte.
  • Auditovatelnost: ukládejte verzi zdroje, čas retrievalu a hash pasáže pro pozdější ověření.

UX výstupu: jak servírovat odpověď

  • Answer-first: 1–2 věty shrnutí, poté „Jak jsme k tomu dospěli“ se zdroji.
  • Citace s kotvami: místo odkazu na domovskou stránku odkazujte přímo na sekci; zobrazujte název dokumentu a datum.
  • Míra jistoty: odhad důvěry (např. nízká/střední/vysoká) podle skóre retrievalu a počtu souhlasných zdrojů.

Měření kvality RAG (KPI a offline/online evaluace)

  • Retrieval Recall@k: zda se v top-k nachází pasáž s odpovědí (gold label).
  • Groundedness/Attribution: podíl tvrzení podložených citacemi, penalizace za „unattributed claims“.
  • Factuality/Exact Match: shoda čísel, definic a závěrů s referencí.
  • Latency p95: doba od dotazu po odpověď; sledujte zvlášť vyhledávání, reranking a generování.
  • Úspěšnost na straně uživatele: kliknutí na zdroje, „bylo to užitečné“, následné akce a konverze.

Architektonické vzory v praxi

  • Classic RAG: jeden dotaz → hybrid retrieval → 3–8 pasáží → LLM.
  • Multi-hop RAG: postupné otázky, když je třeba sestavit odpověď z více dokumentů.
  • Toolformer RAG: LLM rozhoduje o volání nástrojů (tabulkový výpočet, graf, překlad) souběžně s čtením zdrojů.
  • Agentní RAG: plán → vyhledání → validace → syntéza → citace → kontrola kvality.

Optimalizace nákladů a výkonu

  • Cache retrievalu: ukládejte do cache (dotaz → kandidáti) s normalizovaným dotazem; při velkých změnách indexu cache invalidujte.
  • Prompt caching: často kladené otázky uchovávejte v krátkých odpovědích s referencemi.
  • Komprese kontextu: před generováním shrňte dlouhé pasáže (map-reduce summarization) a zachovejte citace.
  • Rerank pouze v případě potřeby: u známých vzorů dotazů reranking vynechte nebo snižte počet kandidátů.

Požadavky na obsah, aby mohl „sloužit jako zdroj pro RAG“

  • Jasné definice a metodiky: citovatelné bloky s nadpisy a jednoznačnými tvrzeními.
  • Strukturovaná data: tabulky, exporty JSON/CSV, DataDownload v schema.org.
  • Verze a data: „platí od“, „revize“, changelog; aby LLM věděly, co je aktuální.
  • URL pro jednotlivé sekce: každá klíčová pasáž má vlastní odkaz a stabilní identifikátor.

Technická příprava webu pro AIO/AEO

  • Schema.org: Article/TechArticle/HowTo s author, dateModified, citation, isBasedOn.
  • Mapa webu pro datasety: zahrňte datasety, CSV/JSON a jejich lastmod.
  • Rychlost a dostupnost: CDN, stabilní odpovědi 200/304, bez agresivních anti-bot bran pro veřejné zdroje.
  • Licenční hlavičky: X-Robots-Tag pro TDM, jasné podmínky použití.

Bezpečnost a ochrana před zneužitím

  • Rate limiting a kvóty: chraňte zdroje, ale umožněte asistentům férový přístup.
  • Signed URLs a hot-pathy: pro nákladné výpočty používejte krátkodobé podepsané odkazy.
  • Detekce prompt injection: čistěte pasáže od pokynů, které se pokoušejí měnit chování modelu.

Příklady použití podle domény

  • E-commerce: odpověď o kompatibilitě produktu s citací z technického listu a informací o dostupnosti z API skladových zásob.
  • Právo a normy: generování s výběrem poslední účinné verze a jasným upozorněním „nejde o právní poradenství“.
  • Zdravotnictví (neklinické): vzdělávací obsah s odkazy na směrnice a datem revize.

Kontrolní seznam pro nasazení RAG

  • Máte hybridní retrieval s rerankingem a MMR?
  • Jsou pasáže chunkované sémanticky, s metadaty a stabilními URL?
  • Vynucujete pravidlo „no-source → no-claim“ a generujete citace?
  • Probíhá delta ingest a pravidelné vytváření embeddingů podle volatility?
  • Měříte Recall@k, groundedness a latenci p95?
  • Řešíte licence, TDM, PII a auditovatelnost?

RAG je praktický způsob, jak propojit sílu LLM s důvěryhodnými zdroji. V optimalizaci webů pro ChatGPT/LLM (AIO/AEO) přináší dvojí efekt: uživatelům poskytuje přesné, aktuální a citované odpovědi a publisherům dává možnost stát se „preferovanými“ zdroji. Kdo připraví obsah k citování (struktura, metadata, verze, URL pro jednotlivé sekce) a nasadí robustní retrieval, získá náskok v éře webu orientovaného na odpovědi.