Dane osobowe znikają, zanim wyślesz plik do AI

Wycina z dokumentu nazwiska, PESEL, NIP i dwadzieścia innych polskich numerów. Działa w całości na Twoim komputerze — żaden plik nie wychodzi do sieci. Po powrocie odpowiedzi wstawia prawdziwe dane z powrotem.

"Umowa z Janem Kowalskim, PESEL 85010112345"
        ↓
"Umowa z [OSOBA_1], PESEL [PESEL_1]"     ← to wysyłasz do modelu
[OSOBA_1] = Jan Kowalski                  ← to zostaje na Twoim dysku
        ↓
"Jan Kowalski ma zapłacić do 15 marca"    ← odpowiedź po podmianie z powrotem

Dla kogo

Dla każdego, kto ma w dokumentach cudze dane i chce korzystać z AI, nie łamiąc RODO: księgowość, kancelarie, kadry, biura rachunkowe, agencje. Nie musisz umieć programować — jest okno w przeglądarce, do którego przeciągasz plik myszką.

Ile z tego działa

Zmierzone na 324 057 słowach polskich pism urzędowych z Biuletynów Informacji Publicznej, w dwóch osobnych zestawach. Drugi zestaw zebraliśmy po zakończeniu prac, więc narzędzie nie widziało tych dokumentów, gdy powstawały jego reguły.

98,9%pełnych nazwisk wyciętych z dokumentów, których narzędzie wcześniej nie widziało
100%PESEL, NIP, REGON, numer konta, telefon, kod pocztowy
23 z 23rodzaje polskich numerów rozpoznane; jeden fałszywy alarm na 323 tysiącach słów
20 z 20dokumentów odtworzonych z powrotem co do znaku

Przez oba zestawy przeszło jedno prawdziwe nazwisko na 287. Sprawdziliśmy to jeszcze raz na cudzym materiale, żeby nikt nie zarzucił nam mierzenia własną miarką: 98,1% pełnych nazwisk na części testowej korpusu KPWr Politechniki Wrocławskiej, gdzie nazwiska oznaczyli ludzie, a nie maszyna.

Pomiar możesz powtórzyć u siebie — sposób liczenia opisuje plik z wynikami, a dołączony skrypt ściąga te same dokumenty z BIP-ów. Dokumentów nie ma w repozytorium: są w nich nazwiska prawdziwych ludzi.

Jak wypada na tle innego polskiego narzędzia

Najdalej zaszedł Parawan i pod jednym względem bije nas na głowę: to jeden plik HTML, który otwierasz podwójnym kliknięciem. Bez instalacji, bez Pythona, bez modelu do pobrania. Przepuściliśmy oba przez te same 19 dokumentów i zmierzyliśmy tym samym przyrządem.

co mierzymyCenzorParawan
pełne nazwiska, 286 sztuk99,0% wyciętych82,5% wyciętych
wszystko, co model uznał za osobę, 55686,3%48,7%
kod pocztowy100%100%
PESEL (jeden w zestawie)wyciętyzostał

Różnica bierze się z metody. Parawan rozpoznaje dane wzorcami i listami — dlatego mieści się w jednym pliku. Tu pracuje model języka polskiego, więc nazwisko w odmianie i takie, którego nie ma na żadnej liście, też zostaje wycięte.

Jak zacząć

Potrzebujesz Pythona 3.10 lub nowszego. Reszta instaluje się sama.

Mac i Linux

git clone https://github.com/studiogo/cenzor.git
cd cenzor
./instaluj.sh

Windows

W PowerShellu (Start → wpisz „PowerShell"). Pythona pobierz z python.org i przy instalacji zaznacz „Add python.exe to PATH".

git clone https://github.com/studiogo/cenzor.git
cd cenzor
powershell -ExecutionPolicy Bypass -File .\instaluj.ps1

Potem okno w przeglądarce — przeciągasz plik, widzisz, co zniknie, pobierasz wynik:

venv/bin/python okno/serwer.py          # Mac i Linux
venv\Scripts\python okno\serwer.py      # Windows

Okno słucha wyłącznie na Twoim komputerze i nie da się go wystawić na sieć. To nie niedoróbka, tylko sedno narzędzia: w chwili, gdy stanęłoby na serwerze, dokumenty zaczęłyby jechać przez sieć na cudzą maszynę.

Czego to nie załatwia

In English

Polish PII anonymizer that runs entirely on your machine. It removes names, PESEL, NIP, REGON and 20 more Polish identifiers from a document before you send it to an LLM, and puts the real values back into the answer. Checksums verify the identifiers; a Polish language model catches inflected names. Measured on 324,057 words of Polish public-administration documents: 98.9% of full names removed on documents the tool had never seen, 100% on structured identifiers, 20/20 documents restored character-for-character. MIT licence.