AI experiment
Lokálny RAG nad vlastnými dokumentmi
Ollama
Python
ChromaDB
nomic-embed-text
Chcel som sa vedieť pýtať vlastných dokumentov – faktúr, zmlúv a technických poznámok – bez toho, aby čokoľvek opustilo môj počítač. Výsledkom je jednoduchý RAG pipeline: dokumenty sa rozsekajú na chunky, cez nomic-embed-text sa vytvoria embeddingy a uložia do ChromaDB. Otázka sa embedne rovnakým modelom, vytiahnu sa najbližšie chunky a llama3 z nich poskladá odpoveď.
Najviac času zožralo ladenie veľkosti chunkov. Príliš malé strácali kontext, príliš veľké riedili relevantnosť. Nakoniec som skončil na 500 tokenoch s prekryvom 50 – na moje slovenské dokumenty to funguje prekvapivo dobre.
$ ollama pull llama3
$ ollama pull nomic-embed-text
$ python ingest.py --dir ./dokumenty --chunk 500 --overlap 50
> 142 dokumentov, 3 816 chunkov, ChromaDB ulozena
$ python ask.py "Kedy mi konci zmluva s hostingom?"
> Zmluva s webhostingom konci 31. 3. 2027,
> vypovedna lehota je 2 mesiace. [zmluva-hosting.pdf, str. 4]