Confidence je plnohodnotné pole, ne řádek v logu
Skóre spolehlivosti zapsané do logu nikoho neochrání — čte ho člověk, který už rozhodl. Skóre uložené u hodnoty je něco jiného: je to podmínka, podle které se rozhoduje, jestli se hodnota vůbec zapíše. Prahy jsou v konfiguraci aplikace, fronta kontroly je plánovaná.
- Co pole nese
- skóre, použitá metoda extrakce, stránka zdrojového dokumentu
- Výchozí práh
- 0,85
- Nominál nad 1 000 000 Kč
- 0,95
- Vždy ke kontrole
- selhané validační pravidlo i nesedící bilanční rovnice, bez ohledu na skóre
- Stav
- prahy jsou v src/progresus_isir/config.py; fronta kontroly je plánovaná (fáze 1)
Skóre je per pole, ne per dokument
Záznam, u kterého je nominál jistý a příznak zajištění nejistý, se nesměruje jako celek. Ke kontrole jde příznak zajištění, nominál se zapíše — pokud záznam zůstane vnitřně konzistentní. Pokud nezůstane, jde ke kontrole celý.
Jedno souhrnné skóre za dokument by tuhle rozlišovací schopnost zahodilo a v praxi by vedlo buď k zahazování použitelných čísel, nebo k zápisu nepoužitelných.
Práh je vázaný na cenu chyby
Běžná pohledávka se řídí prahem 0,85. Pohledávka s nominálem nad hranicí vysoké hodnoty se řídí prahem 0,95, protože chyba u většího čísla stojí víc.
Vztah mezi prahy je vynucený v konfiguraci: přísnější práh nikdy nesmí být volnější než ten běžný. Aplikace s takovým nastavením nenastartuje. Větší číslo se nikdy neposuzuje mírněji než menší.
%% title: Rozhodnutí o jedné vytěžené hodnotě
%% caption: Práh je vázaný na cenu chyby: 0,85 pro běžnou pohledávku, 0,95 nad 1 000 000 Kč. Rozhodnutí analytika je typovaná událost a při přehrání projekce se přehraje taky. Prahy jsou v konfiguraci aplikace; fronta kontroly je na roadmapě.
flowchart TD
F["Vytěžená hodnota pole<br/>skóre, metoda, stránka"] --> V{"Validační pravidlo<br/>nebo bilanční rovnice<br/>porušena?"}
V -- "ano" --> Q["Fronta lidské kontroly"]
V -- "ne" --> N{"Nominál<br/>nad 1 000 000 Kč?"}
N -- "ano" --> T95["práh 0,95"]
N -- "ne" --> T85["práh 0,85"]
T95 --> S{"Skóre ≥ práh?"}
T85 --> S
S -- "ano" --> W[("Zapsat do projekce")]
S -- "ne" --> Q
Q --> D1["Potvrdit"]
Q --> D2["Opravit<br/>s uvedením hodnoty"]
Q --> D3["Nečitelné"]
D1 --> EV[("Událost rozhodnutí<br/>kdo, kdy, co")]
D2 --> EV
D3 --> EV
EV --> W
click F href "/architecture/confidence-je-plnohodnotne-pole" "Confidence je plnohodnotné pole"
click Q href "/roadmap/fronta-lidske-kontroly" "Fronta lidské kontroly"
click S href "/docs/extrakce" "Extrakce"
click W href "/roadmap/projekce" "Projekce"
click D3 href "/about/nevedet-je-lepsi-nez-hadat" "Nevědět je lepší než hádat"
click EV href "/about/log-je-pravda-projekce-je-odvozena" "Log je pravda, projekce je odvozená"
class Q st-in_progress
class W st-in_progress
Barva uzlu je stav položky na roadmapě: Rozpracováno
Past, kterou je nutné pojmenovat
Přesnost se dá vždycky vylepšit tím, že systém zapíše míň. Stačí zvednout práh: měřená přesnost je vždycky přesnost toho, co bylo zapsáno, a všechno ostatní bylo záměrně poslané člověku.
Proto se přesnost nikdy nereportuje sama — vždy spolu s pokrytím a se zátěží fronty kontroly. Tyhle tři veličiny jdou zlepšovat jen společně; kterákoli z nich samotná se dá vyrobit.
Kde to v repozitáři žije
src/progresus_isir/config.py— prahy 0,85 a 0,95, hranice vysokého nominálu a jejich vzájemné omezenídocs/EXTRACTION.md— směrování podle spolehlivosti a případy, které jdou ke kontrole vždy.claude/adr/0005-confidence-gated-extraction.md— rozhodnutí o prahu jako podmínce zápisu
Souvisí
Nevědět je lepší než hádat
Extrakce ze skenů se občas splete. Systém proto ví, co neví: pod prahem spolehlivosti hodnota nejde do databáze, ale k člověku. Chybějící údaj je opravitelný, sebevědomě nesprávný ne.
Detail
OCR + LLM extrakce do schématu
Klasické OCR na formulářích přihlášek selhává. Pipeline kombinuje OCR a multimodální extrakci do deklarovaného JSON schématu, výsledek validuje a teprve pak zapisuje.
Detail
Fronta lidské kontroly
RozpracovánoZdrojový dokument na správné stránce vedle kandidátních hodnot, typované rozhodnutí a záznam kdo a kdy. Rozhodnutí jsou data, která se přehrávají — ne editace v databázi.
Detail