Zdravotní analyzátor
Offline AI health tracker. Nahraj laboratorní výsledky, OCR pipeline vytáhne z PDF každý ukazatel a lokálně běžící Llama 3.1 srozumitelně vysvětlí, co je mimo normu. Nic neopouští notebook.
Problém
Dvakrát ročně dostávám balík labáků — dvanáct PDF, padesát ukazatelů, tři různé konvence referenčních rozsahů. To zajímavé bývá málokdy jedna špatná hodnota; je to trend přes dva roky. Jenže do ChatGPT nenahraju celý krevní obraz a SaaS trackery, co tohle slibují, buď stojí 400 Kč měsíčně nebo tiše posílají data do třetí strany.
Proč lokální Ollama
Zdravotní data jsou učebnicový příklad, kdy mají zůstat na zařízení. Hormonální panely, lipidy, cokoliv jaterního — jakmile to opustí tvůj stroj, už to nedostaneš zpátky. Llama 3.1 8B přes Ollamu se vejde do 4 GB RAM, běží ~30 tokenů/s na M2 Air a jediný síťový provoz, který aplikace dělá, je dotaz na Ollamu na localhost:11434. Žádné účty, žádné API klíče, žádný cloud bill, který škáluje s tím, jak jsem ten týden zvědavý.
Jak to funguje — OCR + bulk import
Hodíš složku s PDF na import zónu. Tesseract OCR projde každou stránku, malý parser detekuje název ukazatele + hodnotu + jednotku + referenční rozsah (české a německé labrky mají různé layouty, takže máme per-laboratoř template registry). Ukazatele se normalizují, deduplikují proti historii a uloží do Postgresu. Když je tam rok dat, klikneš "Vysvětli" — app vytvoří strukturovaný markdown sumář (aktuální hodnota vs. rozsah vs. 12měsíční trend) a pošle ten, ne syrová PDF, do lokálního LLM. Model vrátí tři sekce: co sledovat, co ignorovat, na co se zeptat doktora.
Tech Stack
Klíčové funkce
100% lokální inference
Llama 3.1 8B přes Ollamu na localhostu. Žádné API klíče, žádné rate limity, žádné předplatné. Funguje v letadle.
Bulk import PDF + OCR
Přetáhni složku s laboratorními PDF. Tesseract vytáhne text, per-laboratorní parser zpracuje název ukazatele + hodnotu + jednotku + rozsah.
Analýza trendu přes roky
Každý ukazatel se normalizuje a ukládá v čase, takže vidíš, jestli ferritin opravdu klesá nebo to je týdenní šum.
Vysvětlení v běžné řeči
LLM dostává strukturovaný sumář, ne syrová PDF. Vrátí tři sekce: co sledovat, co ignorovat, na co se zeptat doktora.
Časová osa — jak to rostlo
- Večer 1
Bolavý spike: vlož jedno PDF labáku do Claude a požádej o analýzu. Výstup výborný. Problém nebylo 10 Kč za request — bylo posílání mého panelu třetí straně.
- Večer 2
Nainstaloval Ollamu, stáhl llama3.1:8b, zdrátoval malou Next.js stránku, co POSTuje na localhost:11434. První lokální odpověď za 6 sekund.
- Víkend 1
OCR pipeline s Tesseractem. První tři české laboratorní šablony parsovaly čistě; německá si vyžádala vlastní regex.
- Víkend 2
Postgres schema pro ukazatele + historie. Bulk import 18 měsíců PDF. První pohled na trendy.
- Večer (později)
Prompt engineering: strukturovaný markdown sumář, few-shot příklady pro tón, tři sekce ve výstupu. Kvalita přeskočila původní cloudovou verzi.
- Průběžně
Přidávám šablony, jak narážím na nové layouty. Příště: vrstva přirozeného dotazování přes Ollamu ("ukaž mi ferritin od 2023").
Čísla
Screenshoty
Bulk import — přetažení složky s PDF
Screenshoty redigovány — uvnitř jsou reálná data
Trend ukazatele za 12 měsíců
Screenshoty redigovány — uvnitř jsou reálná data
Panel s LLM vysvětlením — tři sekce
Screenshoty redigovány — uvnitř jsou reálná data
Editor per-laboratorních šablon
Screenshoty redigovány — uvnitř jsou reálná data
Co jsem se naučil
Lokální default mění, co si dovolíš ukládat
Když inference stojí 0 Kč a data neopouští notebook, přestaneš si autocenzurovat, co naimportuješ. Dataset zbohatl, protože náklad na soukromí klesl na nulu.
Prompt > velikost modelu, znovu
Llama 3.1 8B se strukturovaným sumářem překoná GPT-4 se syrovými PDF. Výhra byla ve tvaru vstupu, ne ve velikosti modelu — stejná lekce, kterou se opakovaně učím.
OCR je nesexy 80 %
Naplánoval jsem víkend na LLM a večer na OCR. Bylo to obráceně. Laboratorní PDF mají divoce nekonzistentní layouty; per-laboratorní šablony byly nevyhnutelné.
Zdravotní data zaslouží vyšší laťku než 'šifrujeme přenos'
Většina SaaS trackerů ti rád prožene krevní obraz přes třetí stranu. Nejsem ochotný předpokládat, že to dopadne dobře. Lokální default nebyla feature — byl to celý důvod, proč to stavět.
Chceš celý build journal?
Číst technický článek