Od OCR do analizy sprawy - Astra i Paperless-ngx

Kilka dni temu w panice szukałem bardzo ważnego dla mnie dokumentu. Sterta segregatorów na środku gabinetu rosła wprost proporcjonalnie do mojej frustracji. Po kilkudziesięciu minutach poszukiwania zakończyły się sukcesem. Stałem obok góry papierów i pomyślałem:

„Szef IT dużego miasta, elektroniczne obiegi dokumentów, automatyczne dekretacje… a szewc bez butów chodzi.”

Posiadanie własnego HomeLabu i skonteneryzowanego środowiska daje ogromne możliwości. Dobrych, darmowych rozwiązań też nie brakuje. Wybór padł na Paperless-ngx. Po kilkudziesięciu minutach nowe narzędzie było zainstalowane, skonfigurowane i rozpoczął się długi proces digitalizacji domowych „papierzysk”.

Po kilku godzinach pracy skanera i niszczarki moje tradycyjne, oldschoolowo-papierowe archiwum zaczęło zmieniać się w pełnoprawny system zarządzania dokumentami.

Kolejnym, naturalnym krokiem było zapoznanie Astry z nowym domowym dobrodziejstwem. Po kilkudziesięciu kolejnych minutach w warstwie API pojawiły się nowe endpointy pozwalające na: wyszukiwanie dokumentów, pobieranie metadanych, odczyt OCR/content, generowanie linków do dokumentów źródłowych.

Całość miała być jednak czymś więcej niż kolejną „nakładką AI na PDF-y”. Od początku zależało mi, żeby Astra nie traktowała dokumentów jako pojedynczych plików, ale jako elementy jednej sprawy czy procesu - potrafiła połączyć decyzję ubezpieczyciela z fakturą, oświadczeniem i historią zdarzenia.

Zaczęliśmy ostrożnie: od prostego wyszukiwania dokumentów, pobierania OCR i analizy metadanych:

Astra, Dostępny jest nowy interfejs astra-paperless-api dla integracji z paperless-ngx. Przeprowadź testy integracyjne. Na tym etapie bez interpretacji biznesowej i bez streszczania dokumentów.
Sprawdziłam integrację astra-paperless-api. Wynik:

- Połączenie działa: search_documents zwraca 200 i poprawny JSON.
- Autoryzacja działa
- search_documents: działa, zwraca wyniki i snippet;
- get_document/257: działa i zwraca metadane dokumentu w JSON.
- get_document_text/257: działa, zwraca OCR/content w JSON.

Czas odpowiedzi był krótki: ok. 90-110 ms dla wyszukiwania, 18 ms dla 401, OCR i metadane też wracały szybko.

Na tym etapie nic nie interpretuję biznesowo. Jeśli chcesz, mogę w następnym kroku sprawdzić jeszcze zachowanie dla błędnych parametrów albo przygotować krótki zestaw regresyjnych testów do powtarzania.

Po krótkich testach poprawności działania rozpoczął się trening Astry. Najpierw sprawdzała poprawność autoryzacji, strukturę JSON-ów i wydajność endpointów. Później zaczęła wykonywać coraz bardziej złożone zadania: odnajdywać powiązane dokumenty, identyfikować typy spraw, wyciągać kwoty, daty i strony procesu.

I wtedy wydarzyła się ciekawa rzecz. Astra bardzo szybko przestała „widzieć PDFy”. Zaczęła widzieć sprawy.

Astra, to ostatni test - zadanie swobodne. Znajdź i streść dokumenty z ostatniego miesiąca od TUiR Warta i Toyota Dobrygowski dotyczące rozliczenia szkody w samochodzie Toyota CHR

Po krótkiej chwili Astra odpowiedziała:

Znalazłam 3 świeże dokumenty z ostatniego miesiąca pasujące do tej sprawy. Nie uwzględniam starszych plików, nawet jeśli też dotyczą CHR, bo prosisz o ostatni miesiąc:

844 — 20260516 Oświadczenie WARTA KRK sig - Rola: oświadczenie / upoważnienie do naprawy, holowania i odbioru odszkodowania przez Toyota Dobrygowski. Sens dokumentu: formalne przekazanie sprawy do naprawy i rozliczenia.

847 — Decyzja - Rola: decyzja ubezpieczyciela o odszkodowaniu. Kluczowe dane: ta sama szkoda, pojazd i nr rej. Kwota: 9250,00 PLN brutto. Dodatkowo: Warta wskazuje, że dopłata będzie możliwa po przedstawieniu faktury za naprawę, a odbiorcą odszkodowania jest Toyota Dobrygowski.

177 — Faktura - Rola: faktura za przegląd i części/usługi serwisowe dla Kwota końcowa: 7080,00 PLN. Sens dokumentu: rozliczenie serwisowo-naprawcze po stronie dealera, z listą prac i części.

Krótki obraz sprawy: Warta potwierdza szkodę i przyznaje odszkodowanie. Toyota Dobrygowski jest wpisany jako podmiot, który ma odbierać pieniądze i realizować naprawę. Faktura pokazuje konkretny koszt prac i części.

Wniosek: To zestaw spójny i kompletny operacyjnie: oświadczenie, decyzja i faktura. OCR wygląda wystarczająco dobrze do dalszej ekstrakcji danych, choć 177 ma trochę więcej szumu niż dokumenty Warty. Jeśli chcesz, mogę teraz przerobić to na tabelę pól: szkoda, pojazd, kwoty, daty, strony, status rozliczenia.

To już było coś.

Astra zyskała nową, bardzo cenną dla mnie umiejętność. Nie tylko potrafiła znaleźć dokumenty, ale zaczęła łączyć je w sprawy, rozpoznawać kontekst, wskazywać zależności i oceniać jakość danych wejściowych. Z domowego archiwum dokumentów powstało coś więcej niż cyfrowy segregator - powstała warstwa wiedzy, z którą można rozmawiać. Workflow Astra utrwaliła w pamięci długotrwałej a mnie pozostała już tylko kwestia konsekwentnego utrzymywania domowego archiwum.

Najbardziej uderzające jest jednak tempo. Od pomysłu, przez instalację Paperless-ngx, budowę prostego API, testy endpointów, aż po pierwszą analizę realnej sprawy minęły mniej niż trzy godziny.

I właśnie to lubię w HomeLabie najbardziej. Można wziąć realny problem, dobre narzędzie open source, własnego agenta AI i w jedno popołudnie zbudować coś, co naprawdę zaczyna działać.

PS. Historia prawdziwa, ale dane z powodów oczywistych nieco sfalsyfikowane 🙂

Read more