Dla programistów
· 10 min czytania

API do anonimizacji dokumentów na własnym serwerze

Autor: Amine Gaaliche · szkic przygotowany z pomocą Claude'a, sprawdzony i poprawiony ręcznie

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 APIAPI na własnym serwerzeAplikacja na komputer
Kto ma dokument podczas wykrywaniaDostawca usługiFirma, na swoim serwerzeUżytkownik, na swoim komputerze
Co wychodzi poza sieć firmyCały dokumentSprawdzenie licencji co 6 godzinSprawdzenie licencji; w planie Pro, w trybie bez sieci, nic
AutomatyzacjaTakTak, REST API i CLINie, praca w oknie aplikacji
Praca bez internetuNieNie; najwyżej 3 dni z pamięci podręcznejTak, 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.

Czy ten tekst był przydatny? Prosimy dać nam znać.

Udostępnij