RAG — Retrieval-Augmented Generation
RAG (Retrieval-Augmented Generation) je architektonický vzor, pri ktorom AI model pred generovaním odpovede najprv vyhľadá relevantné dokumenty z externej databázy a použije ich ako kontext — čím prekonáva obmedzenia tréningového cutoffu a dramaticky znižuje halucinácie.
Ako to funguje
Základný problém LLM modelov je, že vedia len to, čo videli počas tréningu. Keď sa ich opýtate na vašu internú dokumentáciu, aktuálne ceny alebo nedávnu zmluvu, nevedia odpovedať správne — buď povedia "neviem", alebo vymyslia odpoveď, ktorá znie vierohodne, ale je nepravdivá. RAG tento problém rieši elegantne: dáta nepotrebujú byť v modeli, stačí ich dosiahnuť za behu.
Typický RAG pipeline vyzerá takto: používateľ položí otázku → systém ju prevedie na vektorovú reprezentáciu (embedding) → vyhľadá v databáze dokumenty, ktoré sú sémanticky najbližšie k otázke → vloží nájdené úryvky do promptu spolu s otázkou → model vygeneruje odpoveď opierajúc sa o dodané dokumenty. Výsledok je odpoveď zakotvená v reálnych dátach, nie v tréningových vzoroch.
Vektorová databáza je srdce RAG systému. Na rozdiel od klasického fulltextového vyhľadávania (kde hľadáte kľúčové slová), vektorové vyhľadávanie pracuje so sémantickou blízkosťou. "Čo stojí prenájom?" a "aká je mesačná platba?" budú sémanticky blízke, aj keď nezdieľajú ani jedno slovo. To robí RAG omnoho robustnejším pre prirodzený jazyk než klasický search.
RAG nie je riešenie na všetko. Funguje skvele pre vyhľadávanie v dokumentoch, FAQ, knowledge base a technickú dokumentáciu. Menej dobre funguje pre komplexné uvažovanie naprieč veľkým množstvom dokumentov, kde sú relevantné informácie rozptýlené po mnohých zdrojoch. Pre tieto prípady existujú pokročilejšie prístupy: graph RAG, hierarchické vyhľadávanie, alebo kombinácia s agentnou architektúrou.
Z našej praxe
V Strange Loops navrhujeme RAG systémy ako súčasť väčších aplikácií. Typická implementácia: dokumenty sa pri ukladaní automaticky embedujú a uložia do pgvector rozšírenia PostgreSQL (ten istý databázový cluster, ktorý používame pre aplikačné dáta cez Drizzle ORM — žiadna extra infraštruktúra). Vyhľadávanie prebieha cez Fastify API endpoint, ktorý overí autentifikáciu cez Better Auth, zavolá LLM API s kontextom a vráti odpoveď s citáciami. Pre SylvoRehab to znamená, že fyzioterapeut sa môže spýtať na protokoly liečby a dostane odpoveď z internej dokumentácie, nie z internetu.
Kedy to potrebujete
- Máte stovky strán internej dokumentácie a nový zamestnanec musí hodiny hľadať odpovede — RAG chatbot mu odpovie okamžite a ukáže, kde informáciu našiel.
- Vaši obchodníci potrebujú rýchlo nájsť správne podmienky zo zmluvy — RAG systém prehľadá aj tisíce strán za sekundy a vráti relevantnú pasáž.
- Zákaznícka podpora dostáva stále rovnaké otázky o produktoch — RAG chatbot nad produktovou dokumentáciou vybavuje rutinné dopyty bez ľudského vstupu.
- Právne dokumenty, smernice alebo medicínske protokoly sa menia — RAG garantuje, že odpovede vždy vychádzajú z aktuálnej verzie dokumentu.
Najčastejšie otázky
Aký je rozdiel medzi RAG a fine-tuningom modelu?
Fine-tuning upravuje váhy modelu na základe vašich dát — model sa naučí váš štýl alebo doménu, ale jeho znalosti sú stále zamorené do modelu a ťažko sa aktualizujú. RAG prináša dáta za behu — znalostná báza sa aktualizuje bez dotyku modelu. Pre väčšinu firemných prípadov je RAG praktickejší a lacnejší.
Potrebujem špeciálnu databázu pre RAG?
Nie nevyhnutne. Populárne riešenia sú pgvector (rozšírenie PostgreSQL, ktoré už možno máte), Pinecone, Weaviate alebo Qdrant. Pre začiatok odporúčame pgvector — ak už používate PostgreSQL, pridáte vektorové vyhľadávanie bez novej infraštruktúry.
Ako presné sú odpovede RAG systému?
Závisí od kvality dokumentov a návrhu systému. RAG dramaticky znižuje halucinácie — model odpovedá len z dodaných fragmentov, nie z vymyslených faktov. Presnosť vyhľadávania (embedding model, chunking stratégia) určuje, či model dostane správny kontext. Systém by vždy mal ukazovať zdroje, aby používateľ mohol odpoveď overiť.
Súvisiace pojmy
LLM — veľký jazykový model
LLM (Large Language Model) je neurónový model trénovaný na miliardách textových dokumentov, ktorý vie generovať text, odpovedať na otázky, písať kód a analyzovať dáta — pričom svoju "znalosť" čerpá z vzorov obsiahnutých v tréningových dátach.
AI agent
AI agent je softvér, ktorý využíva veľký jazykový model (LLM) na samostatné vykonávanie viackrokových úloh — vrátane rozhodovania, používania nástrojov a reagovania na výsledky svojich vlastných akcií.
Potrebujete s tým pomôcť?
Ak riešite niečo z toho, čo tu opisujeme, ozvite sa. Povieme vám, či a ako vieme pomôcť.