Maciej Nuzia · Dokumenty

Automatyzuję odczyt dokumentów i przekazywanie danych do systemu

Faktury, listy przewozowe i protokoły mają różne układy, ale zawierają pola potrzebne w dalszej pracy. Tworzę automat, który odczytuje numer, datę, kwoty lub pozycje i przekazuje je do właściwego systemu. Dokładność takiego odczytu zależy od rzeczywistych plików, również skanów i zdjęć.

Zdjęcia i skany to inna robota niż pliki z tekstem w środku i widać to już w wycenie.

Codzienność

Dziś ktoś odczytuje dokument i przepisuje dane ręcznie

Plik trzeba otworzyć, znaleźć w nim numer, datę i kwotę, przełączyć się na drugie okno i wystukać to samo jeszcze raz. Przy kilku dokumentach dziennie to drobiazg. Przy pełnej skrzynce ta czynność zjada komuś kawałek każdego dnia i nie ma swojej nazwy w żadnym zakresie obowiązków.

  • ten sam numer wpisywany dwa razy, bo drugi system nie widzi pierwszego
  • skan z telefonu, krzywy i w połowie w cieniu
  • dokument od nowego dostawcy wygląda inaczej i trzeba się go nauczyć
  • pozycje, których na pierwszej stronie nie widać, bo tabela idzie dalej

Dla kogo

Zacznij od typu dokumentu, który regularnie wraca

Kandydata poznaje się po tym, czy dokument wraca w tym samym kształcie. Faktura od stałego dostawcy wraca, choć u każdego wystawcy wygląda inaczej. Pismo, które przyjdzie raz i nigdy więcej, ma za krótkie życie, żeby budować pod nie odczyt, i takiej roboty nie wezmę. Jeden wzór nakłada się najgęściej w takich miejscach:

  • Księgowość wprowadzająca cudze faktury
  • Spedycja, gdzie każdy przewoźnik ma swój list
  • Kancelarie i działy umów
  • Dział zakupów zasypany ofertami
  • Serwis: protokoły z napraw
  • Zarządcy nieruchomości: umowy najmu i odczyty liczników

Rodzaje dokumentów

Co można odczytać i gdzie zapisać dane

Faktura kosztowa

Numer, data, sprzedawca, kwoty i pozycje. Automat zestawia je z zamówieniem, na które faktura się powołuje, i przy rozjeździe odkłada dokument do sprawdzenia.

Pismo od dostawcy z własnym wzorem

Pola nazywają się inaczej, tabela stoi w innym miejscu, część danych siedzi w stopce małym drukiem. Dlatego opisuję pola ich znaczeniem, a nie miejscem na stronie.

Rozpoznanie, co to za pismo

Poczta przychodzi wymieszana: faktura, potwierdzenie dostawy, reklamacja. Automat rozdziela je po rodzaju i odkłada każdy plik do właściwej kolejki wraz z odczytanymi polami.

Zdjęcie zrobione telefonem

Kierowca fotografuje potwierdzenie na parkingu i zdjęcie przychodzi krzywe. Takie pliki prostuję przed odczytem, a które z nich przejdą, sprawdzam na Twoich zdjęciach.

Dwa dokumenty obok siebie

Zamówienie przy fakturze, list przewozowy przy potwierdzeniu odbioru. Automat pokazuje pozycje, które się rozjeżdżają, a decyzję zostawia człowiekowi.

Wpis po drugiej stronie

Odczytane pola idą tam, gdzie mają być: do programu księgowego, do ERP, do arkusza, który ktoś i tak otwiera codziennie. Ten krok bywa najdłuższy, bo system po drugiej stronie przyjmuje dane na swoich warunkach.

Kiedy chodzi Ci o zadawanie pytań do tych dokumentów, osobną drogą jest RAG dla firm. A jeśli odczyt jest jednym z kroków większej czynności biurowej, zaczynam od strony o automatyzacji procesów.

Na Twoich plikach

Rzeczywista próbka pokazuje, jak trudny będzie odczyt

Sterta, z której ktoś wyjął najgorsze egzemplarze, daje obraz rozjeżdżający się w pierwszym tygodniu pracy.

01

Jeden typ pisma na początek

Biorę ten, którego jest najwięcej, i spisuję z Tobą pola naprawdę potrzebne dalej. Część rubryk z dzisiejszego formularza odpada, bo ktoś je przepisuje z rozpędu, a potem nikt do nich nie zagląda.

02

Odczyt pole po polu

Ustawiam, co ma zostać wyjęte i po czym to rozpoznać: po nagłówku, po sąsiedztwie, po formacie liczby. Przy stałym wzorze wystarcza do tego zwykła reguła, przy pismach z ruchomym układem potrzebny jest model.

03

Próg pewności i człowiek za nim

Każde pole wraca z informacją, na ile odczyt był pewny. Ustalamy z Tobą, przy których polach pomyłka kosztuje najwięcej. Kiedy odczyt takiego pola wypadnie poniżej progu, dokument czeka na oczy człowieka.

04

Włączenie i licznik odłożonych

Automat rusza na tym jednym typie pisma. Potem oglądam, co odłożył do sprawdzenia i dlaczego, bo z tego robi się lista poprawek. Licznik odłożonych dokumentów wart jest zerknięcia co jakiś czas: kiedy podskoczy, zwykle znaczy to, że dostawca zmienił swój wzór.

Technologie

Plik tekstowy i zdjęcie wymagają innego odczytu

Pierwszy ma tekst w środku i wystarczy go stamtąd wyjąć. Drugi trzeba najpierw rozpoznać z obrazu, a rozpoznać da się tylko to, co na zdjęciu widać.

  • OpenAI API
  • Claude / Anthropic
  • OCR
  • Modele wizyjne
  • Python
  • PostgreSQL
  • Integracje księgowe
  • Webhooki
  • AWS

Słabe punkty

Błędnie odczytana wartość trafia dalej do systemu

Plik, na którym kwoty nie widać

Zdjęcie pod światło, faks, kopia kopii. Część z tego prostuje przygotowanie obrazu przed odczytem, część zostaje nieczytelna dla każdego, kto na nią spojrzy. Jak duża jest ta druga grupa u Ciebie, sprawdzam na próbce, zanim cokolwiek obiecam.

Wzór zmieniony w środku roku

Dostawca przestawia szablon i nie uprzedza o tym nikogo. Odczyt trafia wtedy w sąsiedni wiersz i podaje dalej liczbę, która niczym się nie wyróżnia. Dlatego pilnuję rzeczy, które muszą się zgadzać: suma pozycji z kwotą na dole, numer z tym, co już jest w systemie.

Pliki, które trzymasz pod kluczem

Akta osobowe, dokumentacja medyczna, umowy z klauzulą poufności. Zanim plik pojedzie do modelu u dostawcy, w firmie musi zapaść decyzja, co w ogóle wolno wysłać na zewnątrz. Przy części dokumentów odpowiedź brzmi: nic.

FAQ

Dokumenty, odczyt i miejsca zapisu

Czym to się różni od zwykłego OCR?

OCR zamienia obraz na tekst i na tym się zatrzymuje. Zostaje ściana liter, z której ktoś dalej wyławia numer i kwotę. Model dokłada ten drugi krok: rozpoznaje, że ciąg cyfr przy słowie „razem" jest kwotą do zapłaty, i że spośród kilku dat na fakturze do rubryki „termin płatności" pasuje jedna.

Jakie dokumenty da się czytać?

Faktury, listy przewozowe, zamówienia, umowy, protokoły, formularze. Liczy się powtarzalna zawartość: te same pola wracają w każdym egzemplarzu, nawet jeśli układ u każdego dostawcy wygląda inaczej. Jednorazowe pisma i swobodny tekst bez stałych pól odpadają.

Co się dzieje, kiedy automat czegoś nie odczyta?

Pole wraca puste albo oznaczone jako niepewne, a dokument czeka na człowieka. Ustalamy, które pola muszą być pewne, a przy których wystarczy wpis do poprawienia później. Bez tej listy automat albo zatrzymuje wszystko, albo puszcza dalej rzeczy, których puszczać nie powinien.

Gdzie trafiają skany, kiedy automat je czyta?

Zależy od tego, gdzie stanie odczyt. U dostawcy modelu plik trafia na cudze serwery i wtedy liczy się, co ten dostawca zapisuje po swojej stronie i na jak długo. Odczyt postawiony w Twojej infrastrukturze trzyma pliki w firmie. Wtedy dochodzą pytania o to, gdzie ma stanąć i kto go dogląda. Ten wybór należy do Ciebie i zapada przed projektem.

Co najbardziej podnosi pracochłonność?

Liczba różnych wzorów do obsłużenia i udział skanów wśród nich, bo obraz trzeba najpierw rozpoznać. Zaraz za tym stoi system po drugiej stronie: jeden przyjmuje dane przez API, do innego wchodzi się plikiem wsadowym, przygotowanym dokładnie tak, jak lubi.

Próbka

Pokaż mi jeden typ dokumentu

Wybierz ten, którego masz najwięcej, i napisz krótko, co ktoś dziś z niego przepisuje i dokąd. Na tym opiera się i rozmowa, i raport z narzędzia do wyceny.