HASON Marcel AI engineering

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]