API do anonimizacji dokumentów można uruchomić na serwerach własnej firmy. Ten sam silnik co w aplikacji na komputer działa wtedy jako REST API i narzędzie wiersza poleceń. Dokumenty nie opuszczają sieci firmy: wychodzi z niej tylko zapytanie licencyjne, wysyłane co 6 godzin.
Kto ma dokument w chwili wykrywania
Zwykle stawia się sprawę tak: chmura albo komputer. Ważniejsze jest jednak to, kto ma dokument w chwili, gdy działa wykrywanie. W chmurowym API dokument trafia do dostawcy. W aplikacji na komputer zostaje u użytkownika, ale każdy plik obsługuje się ręcznie.
API na własnym serwerze łączy zalety obu rozwiązań: dokument zostaje na serwerze firmy, a przetwarzanie można zautomatyzować, wpiąć w istniejące systemy i skalować. W kancelarii, biurze rachunkowym czy dziale kadr to rozróżnienie często decyduje o wyborze narzędzia.
Ma ono znaczenie z punktu widzenia RODO. Gdy dokument trafia do zewnętrznego API, jego dostawca zwykle działa jako podmiot przetwarzający, a art. 28 wymaga umowy powierzenia. Ocena konkretnego przypadku należy do administratora danych.
Takie wdrożenie jest uzasadnione dla zespołu, który przetwarza setki plików dziennie i ma własną infrastrukturę. Przy kilku dokumentach tygodniowo prostsza będzie aplikacja na komputer.
Co wychodzi z sieci firmy
Poza sieć wychodzi jedno połączenie: kontener co 6 godzin sprawdza klucz API na naszym serwerze licencji. Gdy serwer jest nieosiągalny, API najwyżej przez 3 dni korzysta z zapisanej odpowiedzi, a potem przestaje działać.
Sprawdzenie licencji nie przenosi treści dokumentów. Opisujemy je wprost, bo inżynier zobaczy je w ruchu sieciowym już pierwszego dnia testów.
Nie można więc twierdzić, że to API działa bez zewnętrznych zależności. Ruch licencyjny da się zablokować na zaporze sieciowej, ale wtedy po 3 dniach API się zatrzyma.
Praca bez sieci
API nie ma trybu pracy w sieci odciętej od internetu, bo limit 3 dni wyklucza takie wdrożenie. Warto to sprawdzić zawczasu: o izolację zwykle pyta dział bezpieczeństwa.
Aplikacja na komputer ma osobny mechanizm: w planie Pro działa bez sprawdzania licencji i bez raportów o błędach. To inny produkt z innym rodzajem licencji.
Trzy sposoby przetwarzania
Tabela zestawia trzy sposoby przetwarzania dokumentów.
| Chmurowe API | API na własnym serwerze | Aplikacja na komputer | |
|---|---|---|---|
| Kto ma dokument podczas wykrywania | Dostawca usługi | Firma, na swoim serwerze | Użytkownik, na swoim komputerze |
| Co wychodzi poza sieć firmy | Cały dokument | Sprawdzenie licencji co 6 godzin | Sprawdzenie licencji; w planie Pro, w trybie bez sieci, nic |
| Automatyzacja | Tak | Tak, REST API i CLI | Nie, praca w oknie aplikacji |
| Praca bez internetu | Nie | Nie; najwyżej 3 dni z pamięci podręcznej | Tak, w planie Pro |
Co robi silnik
Silnik jest ten sam co w aplikacji na komputer. Wzorce znajdują dane o stałym formacie, takie jak PESEL, NIP czy IBAN. Model wykrywania znajduje nazwiska, firmy i adresy: zależnie od wdrożenia jest to spaCy, BERT lub GLiNER. Do tego dochodzi opcjonalny model językowy, domyślnie wyłączony.
Wyniki są łączone i usuwa się z nich powtórzenia, a nazwisko znalezione na pierwszej stronie zostaje oznaczone także na czwartej. Żaden model nie znajduje wszystkich danych, więc wyniki API trzeba sprawdzać, zanim plik trafi dalej.
Zeskanowane strony silnik renderuje w 300 dpi i odczytuje Tesseractem w języku dokumentu oraz po angielsku. Dane zakrywa jako obszary obrazu, a pod spodem odbudowuje warstwę tekstu. Zaczernianie usuwa treść ze strony.
Eksport obejmuje też ukryte części PDF, takie jak metadane, teksty alternatywne i pola formularzy. Zakodowana wartość dostaje tam swój kod, a zaczerniona neutralny znacznik.
Kody w API
Kody są przypisane do folderu: w jednym folderze ta sama wartość dostaje ten sam kod. Dokument wysłany osobno, poza folderem, ma własną przestrzeń kodów, więc ta sama osoba dostanie w kolejnym wywołaniu inny kod.
Żeby seria dokumentów miała spójne kody, trzeba umieścić te dokumenty w jednym folderze. Tylko kod dodany ręcznie w Ustawieniach obowiązuje wszędzie. Odkodowanie to lokalne wywołanie silnika na tym samym serwerze, a nie osobna usługa.
Klucz i dokumentacja
Każde zapytanie do API wymaga klucza w nagłówku. Bez klucza odpowiada tylko punkt końcowy /health. Strony /docs nie da się więc otworzyć w przeglądarce, bo przeglądarka nie dołącza nagłówka z kluczem. Schemat API pobiera się poleceniem curl z tym nagłówkiem.
Drugą stronę tego zagadnienia omawiamy w tekście o tym, dlaczego narzędzia do zaczerniania powstają dla programistów.
Najczęstsze pytania
Czy API do anonimizacji działa bez internetu?
Tylko przez ograniczony czas. API co 6 godzin sprawdza licencję, a bez połączenia działa najwyżej 3 dni. Pracę całkowicie bez sieci umożliwia aplikacja na komputer w planie Pro.
Czy dokumenty trafiają na serwery promptShield?
Dokumenty są przetwarzane na serwerze firmy i tam zostają. Na nasz serwer trafia tylko zapytanie sprawdzające klucz licencji.
Czy ta sama osoba dostaje ten sam kod w każdym wywołaniu?
Tylko w obrębie jednego folderu. Dokumenty wysyłane osobno dostają osobne kody, chyba że wartość ma kod dodany ręcznie w Ustawieniach.
Czy API ma dokumentację w przeglądarce?
Strona /docs wymaga klucza w nagłówku, więc przeglądarka jej nie otworzy. Schemat API można pobrać poleceniem curl z kluczem.