Představte si, že stavíte mrakodrap. Můžete mít ten nejlepší architektonický plán na světě, nejšikovnější dělníky a nejdražší materiály. Ale pokud se rozhodnete stavět na nestabilním, bažinatém podloží, celý projekt je odsouzen k neúspěchu. Dříve či později se objeví praskliny a celá stavba se zhroutí.
Toto je první 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.
Proč je 80 % úspěchu AI projektu skryto v datech
V architektuře umělé inteligence jsou vaším podložím data.
Většina firem, které chtějí implementovat vlastního AI RAG asistenta, udělá jednu zásadní chybu. Zaměří se na výběr nablýskaného jazykového modelu a na design chatovacího okna. Ale své vlastní firemní know how, tedy tisíce PDF souborů, interních směrnic a dokumentů, do systému jen tak nasypou. Je to stejné jako stavět mrakodrap na bažině.
Výsledkem je AI, která si vymýšlí, nerozumí kontextu a nedokáže najít odpovědi, které v datech prokazatelně jsou. V tomto prvním díle našeho seriálu se podíváme na tu nejdůležitější a často nejvíce podceňovanou fázi celého procesu. Ukážeme si, jak z vaší datové bažiny vytvořit pevné, ocelobetonové základy, na kterých lze postavit skutečný inteligentní systém.
Detailní technologie a architektura: Stavíme datový pipeline
Cílem není jen data vyčistit. Cílem je postavit robustní, automatizovaný a opakovatelný proces, kterému říkáme datový pipeline. Tento proces transformuje surová, chaotická data z různých zdrojů do jednotného, strukturovaného formátu, kterému AI dokonale rozumí.
Architektura takového pipeline se může stát velmi komplexní. Například u jednoho z mých klientů bylo klíčovým požadavkem, aby se znalostní báze nejen jednorázově naplnila, ale aby se pravidelně a automaticky aktualizovala o nové zdroje. To zahrnovalo nejen textové dokumenty, ale i přepisy videí nebo novinky z oborových newsletterů.
Řešením bylo navrhnout jediný, centrální skript, který funguje jako inteligentní sběrač a zpracovatel. Tento skript se v pravidelných intervalech spouští a provádí následující operace:
- Stáhne si aktuální data z primárních zdrojů, jako je firemní databáze.
- Tato data obohatí o dodatečné informace, které si sám stáhne z veřejně dostupných webových stránek a které v původní databázi chybí.
- Všechna data převede do jednotného formátu JSON.
- Provede inteligentní chunking neboli rozdělení na logické části.
- Pro každý chunk vygeneruje embeddings neboli číselnou reprezentaci.
- Nakonec vše nahraje do databáze Neo4j a automaticky vytvoří vztahy mezi novými a existujícími daty.
Je to v podstatě plně automatizovaná továrna na znalosti. Ale s takovou komplexitou přichází i obrovské riziko chyb. Špatně nastavený chunking může roztrhat klíčovou informaci, chyba v generování vztahů může vést k nesprávným souvislostem.
Je zde mnoho důvodů, jak nadělat spoustu chyb. Proto je naprosto zásadní, aby byl celý tento proces neustále monitorován, automaticky testován a pravidelně validován. Bez toho se z vaší chytré továrny může stát továrna na dezinformace.
Architektura: Právní RAG chatbot
Specifický příklad: právní RAG chatbot. U jednoho z mých nedávných projektů pro expertní systém v právní oblasti bylo klíčové zpracovat desítky dokumentů ze čtyř naprosto odlišných kategorií:
- Primární legislativa: Zákony a vyhlášky.
- Důvodové zprávy: Texty vysvětlující záměr zákonodárce.
- Výklady a stanoviska: Oficiální pokyny a často kladené dotazy.
- Odborné články: Analýzy a komentáře od expertů z praxe.
Každá z těchto kategorií vyžaduje jiný přístup ke zpracování. Proto jsem navrhl dvoustupňovou strategii chunkingu, tedy inteligentního dělení dokumentů.
- A) Dokumenty se strukturou (právní texty): U zákonů a vyhlášek by bylo chybou text jen tak rozsekat. Ztratili bychom klíčovou hierarchii. Zde jsem tedy nejprve extrahoval již existující logické sekce (paragrafy, odstavce) a teprve ty jsem následně dělil na menší „chunky“. Tím jsem zajistil, že AI vždy chápe, do jakého kontextu daná informace patří.
- B) Dokumenty bez struktury (články, zprávy): U odborných článků a důvodových zpráv jsem naopak použil takzvaný sémantický chunking. Text jsem rozdělil na smysluplné celky o velikosti přibližně 1000 tokenů, přičemž každý chunk měl překryv 200 tokenů s tím následujícím. Tento překryv je zásadní pro zachování kontextu mezi jednotlivými částmi.
Celý tento proces byl řízen skriptem, který pro stovky výsledných chunků následně vygeneroval číselnou reprezentaci neboli embeddings (pomocí modelu text-embedding-3-small od OpenAI) a vše nahrál do databáze.
Od úložiště textů ke znalostnímu grafu
Samotné rozdělení textů a jejich převedení na vektory je jen polovina úspěchu. Skutečný game changer přichází ve chvíli, kdy přestanete o své databázi přemýšlet jako o pouhém „vektorovém úložišti“ a začnete ji budovat jako skutečný znalostní graf.
V mém případě jsem pro každý zpracovaný dokument a chunk v databázi Neo4j vytvořil nejen samotná data, ale i bohatou síť vztahů. Například:
(Dokument)-[:MÁ_SEKCI]->(Sekce)-[:MÁ_CHUNK]->(Chunk)(Chunk)-[:NÁSLEDUJE_PO]->(Další_Chunk)(Chunk)-[:ODKAZUJE_NA]->(Paragraf_Zákona)(Chunk)-[:ZMIŇUJE]->(Klíčová_Entita)
Díky této struktuře AI nejenže najde relevantní text, ale okamžitě vidí i celý jeho kontext. Ví, jaké další chunky mu předcházely a následovaly, na jaký konkrétní zákon se odkazuje a jaké klíčové entity zmiňuje.
Je to přesně ten typ hlubokého porozumění, který odlišuje expertní systém od běžného chatbota.
Co si z toho odnést?
Naučili jsme se, že příprava dat není jen nudná, přípravná fáze. Je to nejdůležitější architektonické rozhodnutí, které děláte. Je to moment, kdy pokládáte základy pro celý váš budoucí systém.
Byznysový přínos precizně navrženého datového pipeline je obrovský. Místo nespolehlivého chatbota, kterému nikdo nevěří, získáte skutečného digitálního experta. Experta, který má přístup k perfektně strukturovaným, čistým a vždy aktuálním datům. A jedině takový systém může vašemu týmu reálně šetřit čas, snižovat chybovost a v konečném důsledku generovat zisk.
Investice do datové architektury není náklad. Je to ta nejlepší investice do spolehlivosti a inteligence vašeho budoucího AI asistenta. V příštím díle se podíváme na to, kam tato perfektně připravená data uložit. Rozebereme si výběr a architekturu databáze.