Projekty P.05

Teramex

Systém pro firmu Teramex, který z firemních dokumentů dělá prohledávatelné agendy: hledání, chat s odkazy na stránky, vyplňování tabulek z obsahu dokumentů a hlídání termínů. Navrhl jsem ho a postavil sám.

Role
Návrh, vývoj
Období
2026 → dnes
Rozsah
Systém pro práci s firemními dokumenty: hledání, chat s odkazy na stránky, extrakce do agend, hlídání termínů
Stav
V pilotním provozu
Chat nad dokumenty: odpověď s odkazem na stranu, kde je údaj ve smlouvě. Ukázková data.
Fig. 1 · Chat nad dokumenty: odpověď s odkazem na stranu, kde je údaj ve smlouvě. Ukázková data.

Zadání

Teramex pracuje s firemními dokumenty, třeba leasingovými a pojistnými smlouvami nebo protokoly z STK. Systém, který jsem pro něj navrhl, dokumenty přijme, přečte je (i naskenované), roztřídí do agend, tedy evidencí jednoho druhu, například Auta nebo Pojištění, a vyplní z nich tabulky. Nad dokumenty se dá hledat a ptát se jich v chatu.

Systém je zatím v pilotním provozu.

Co stojí za zmínku

01

Chat odpovídá s odkazem na stránku dokumentu

Odpověď bez zdroje se nedá zkontrolovat. Chat proto u odpovědi uvede dokument a stránku, odkud informaci vzal, a dokument se z odpovědi otevře. Na snímku se ptám, kolik se platí při předčasném ukončení leasingu mini bagru, a odpověď odkazuje na stranu 3 smlouvy, kde ta podmínka je. Podle odkazu si člověk údaj rychle ověří přímo v dokumentu.

02

Nejisté čtení nejde rovnou do evidence, nejdřív ho schválí člověk

Ne vždy se z dokumentu dá jistě poznat, ke kterému záznamu údaje patří, třeba ke kterému autu. Když si systém není jistý, nezapíše je do evidence. Záznam počká v přehledu čekajících záznamů, kde je vidět, jak moc si je systém jistý, a člověk ho schválí, sloučí s existujícím nebo odmítne. Na snímku jich čeká deset. O tom, co se do evidence dostane, rozhoduje člověk.

03

Hlídání termínů s upozorněním předem

STK, pojistka nebo leasing skončí a nikdo si toho včas nevšimne. Sloupce s datem, které jsou označené jako lhůta, proto systém hlídá a rozlišuje, jestli lhůta už skončila, brzy skončí, nebo je v pořádku. Přehled agend má panel Expirace, kde jsou hlídané lhůty ze všech agend seřazené podle toho, jak blízko jsou. K lhůtám jde nastavit pravidlo, kolik dní předem a jakým kanálem se má systém ozvat, v aplikaci nebo e-mailem.

Jak to vypadá

Detail leasingové smlouvy: shrnutí dokumentu a pole s pronajímatelem, nájemcem, daty, částkami a čísly
Fig. 2 · Údaje vytažené ze smlouvy do polí: strany, data, částky a čísla.
Schránka osiřelých záznamů: tabulka čekajících záznamů se spolehlivostí a tlačítky Schválit, Sloučit a Odmítnout
Fig. 3 · Schránka osiřelých záznamů: nejistá čtení čekají na schválení, sloučení nebo odmítnutí.
Přehled agend Auta a Pojištění a vpravo panel Expirace se seznamem hlídaných lhůt
Fig. 4 · Přehled agend s panelem Expirace: hlídané lhůty podle toho, jak blízko jsou.

Na čem to běží

  • NestJS
  • React
  • PostgreSQL
  • pgvector
  • Redis
  • Ollama
  • Docker

Webová aplikace volá API, to ukládá dokumenty a záznamy do PostgreSQL s vektorovým rozšířením a zpracování běží přes frontu. Aplikace i databáze běží na serveru klienta, vektory počítá lokální model, čtení, třídění a odpovědi řeší externí jazykový model. Externí model jde vyměnit za lokální, až se klient rozhodne investovat do vlastního hardwaru.

Architektura systému Teramex Prohlížeč s webovou aplikací volá API. API ukládá záznamy, vektory a data pro fulltextové hledání do databáze, ukládá dokumenty do úložiště, posílá e-maily s upozorněním na lhůty a posílá dotazy chatu externímu jazykovému modelu. Zpracování dokumentů jde přes frontu úloh, ta nechá lokálně spočítat vektory textu a posílá externímu jazykovému modelu a OCR dokumenty k přečtení, roztřídění a vyplnění. PROHLÍŽEČ (REACT) API (NESTJS) E-MAIL (SMTP) ÚLOŽIŠTĚ DOKUMENTŮ FRONTA ÚLOH (REDIS, BULLMQ) EMBEDDINGY (OLLAMA, LOKÁLNĚ) EXTERNÍ JAZYKOVÝ MODEL A OCR DATABÁZE (POSTGRESQL, PGVECTOR)

Postup, jakým takové systémy stavím, popisuju na stránce Jak pracuju.

Chcete postavit něco podobného?

Napsat mi →