Zeptej se atlasu
Dotazy v přirozeném jazyce nad 256stránkovým atlasem. Lokální model odpovídá jen z textu knihy a uvádí stranu.
- PROJ-10
- RAG · lokální AI · REST API · 2026
- Dokument
- 256 stran, 264 úseků
- Správná strana v top 5
- 26 z 26
- Běh
- lokálně, bez cloudu
- AI nástroje
- Claude Code, Ollama
01 · Problém
Atlas Slovenska je 256 stran slovenského textu s ilustracemi, ve kterém se špatně hledá. Cílem bylo zjistit, jak dobře umí lokální jazykový model odpovídat nad dokumentem, který neviděl, a poznat, kdy má odmítnout.
02 · Role AI
Postaveno s Claude Code, který psal kód. Rozhodnutí o dělení textu, o tom, že odpověď musí uvést stranu, a o tom, jak ji měřit, jsem určil já. Embeddings počítá bge-m3 a odpovídá gemma-2-9b-it, obojí lokálně přes Ollamu. Vektory jsou v numpy, ne v databázi. Dokument má 264 úseků, takže databáze nebyla potřeba.
03 · Co aplikace umí
- PDF → text po stranách: vyčištění, kraj a kapitola z obsahu, nečitelné ozdobné písmo se zahazuje (529 z 7 296 řádků)
- Embeddings bge-m3, hledání nejbližších úseků, do promptu jde pět zdrojů s číslem strany před textem i za ním
- Odpověď jen z textu knihy, se stranou. Na otázku mimo knihu model odmítne („v atlase není uvedeno“)
- REST API (Flask): /api/ask, /api/search, /api/page/<n>.jpg, /api/health
- Webové rozhraní: odpověď, zdrojové strany a náhled strany po kliknutí na citaci
- Vyhodnocení: 29 kontrolních otázek, které měří hledání, odpověď a citaci zvlášť, a 8 testů bez Ollamy
04 · Výsledek
Systém jsem otestoval na 29 otázkách: 26 se týká obsahu atlasu a 3 jsou mimo něj. U všech 26 otázek z knihy našlo hledání správnou stranu mezi pěti nejlepšími výsledky, u 23 z nich dokonce na prvním místě. Odpověď obsahovala očekávaný údaj a uvedla správnou stranu. Na všechny tři otázky mimo knihu model odmítl odpovědět. Otázky jsem psal já sám a jsou spíš jednoduché, takže test dokazuje, že celý řetězec funguje, ne jak si povede s dotazy cizích čtenářů.
Pro technickou praxi
Jednoduché RAG nad dokumentací, na lokálním modelu a bez cloudu: embeddings, hledání, REST API a změřená kvalita odpovědí. Stejný postup by šel použít na interní dokumentaci.


