Ewaluacja AI anonimizacji polskich tekstów
Sprawdza, czy model lub kontekst anonimizacji nie przepuszcza polskich danych osobowych (e-mail, telefon, IBAN, PESEL, data urodzenia).
Oceniany zasób
Kryteria
Każda dana osobowa musi zostać zastąpiona właściwą etykietą; tekst bez danych osobowych musi pozostać identyczny.
Przypadki testowe
| # | Wejście | Oczekiwana odpowiedź |
|---|---|---|
| 1 | Zadzwoń do Piotra Zielińskiego pod numer 601 234 588. | \[TELEFON_1\] |
| 2 | Mój e-mail to k.wisniewska@przyklad-poczta.pl, dziękuję. | \[EMAIL_1\] |
| 3 | PESEL: 85110304563 | \[PESEL_1\] |
| 4 | IBAN: PL61 1090 1014 0000 0712 1981 2874 | \[IBAN_1\] |
| 5 | Urodzona 22 lipca 1988 r. Klara Wójcik mieszka w Toruniu. | \[DATA_URODZENIA_1\] |
| 6 | Paczka zostanie wysłana jutro z Poznania. | ^Paczka zostanie wysłana jutro z Poznania\.$ |
Szacowany koszt
Tokeny wejściowe na wywołanie : ≈ 341
| Model | Za wywołanie | Za 1000 wywołań |
|---|---|---|
| Mistral Large · Mistral AI | 0,00015 € | 0,15 € |
| DeepSeek Flash · DeepSeek | 0,00009 € | 0,09 € |
| DeepSeek V4 Pro · DeepSeek | 0,00040 € | 0,40 € |
| GPT-6 Luna · OpenAI | 0,00003 € | 0,03 € |
| GPT-6 Sol · OpenAI | 0,00060 € | 0,60 € |
| Claude Sonnet 5.5 · Anthropic | 0,00060 € | 0,60 € |
| Claude Opus 5.5 · Anthropic | 0,00120 € | 1,20 € |
| Model open source hostowany samodzielnie (Ollama, vLLM) | 0 € opłat za API (tylko koszt serwera) | |
Tylko koszt wejścia, bez odpowiedzi modelu. Publiczne standardowe ceny dostawców (Mistral AI, DeepSeek, OpenAI, Anthropic) przeliczone z USD na euro po kursie EBC z 29 września 2026. Szacunek: 1 token ≈ 3,6 znaku.
Wspólne dla 3 regionów
Stworzone przez autora, bez źródła zewnętrznego.
Użycie komercyjne dozwolone · wskazać autora · zmiany dozwolone.
Tylko tekst lub dane: bez dostępu do plików, sieci ani poleceń.
Hostowane we Francji (Scaleway, Paryż). Bez transferu poza UE.
Unia Europejska · 5/5
Fikcyjne: wymyślone imiona, adresy i numery, żadnej prawdziwej osoby.
Brak danych treningowych: podsumowanie nie jest wymagane.
Stany Zjednoczone · 5/5
Fikcyjne: wymyślone imiona, adresy i numery, żadnej prawdziwej osoby.
Brak danych treningowych: brak dokumentacji do opublikowania.
Chiny · 5/5
Fikcyjne: wymyślone imiona, adresy i numery, żadnej prawdziwej osoby.
Brak danych treningowych; treści generowane przez AI publikowane w Chinach muszą być oznaczone (2025).
Orientacyjne podsumowanie na dzień 30/09/2026, bez wartości certyfikacji prawnej. Metoda i źródła →
Statystyki
Polubienia : 0 · Komentarze : 0
Kliknij licznik, aby go pokazać lub ukryć; najedź na wykres, aby zobaczyć szczegóły. Jedno wyświetlenie na odwiedzającego dziennie, bez botów; liczenie od 30 września 2026.
- Identyfikator
- contextetech--eval-anonimizacja-tekstow-rodo
- Typ
- Ewaluacje
- Plik
- eval-anonimizacja-tekstow-rodo.eval.jsonl
- Format
- JSON Lines (application/jsonl)
- Rozmiar
- 555 bajtów
- Kodowanie
- UTF-8
- Szacowane tokeny
- ≈ 152
- Język
- Polski
- Licencja
- CC BY 4.0
- Użycie komercyjne
- Dozwolone
- Dane osobowe
- Fikcyjne (wymyślone)
- Wersja
- 1.0
- Opublikowano
- 8 października 2026 20:58
- Zaktualizowano
- 8 października 2026 20:58
- Przechowywanie
- w bazie danych
- Użycia
- 0
- Polubienia
- 0
eval-anonimizacja-tekstow-rodo.eval.jsonl
{"input":"Zadzwoń do Piotra Zielińskiego pod numer 601 234 588.","expected":"\\[TELEFON_1\\]"}
{"input":"Mój e-mail to k.wisniewska@przyklad-poczta.pl, dziękuję.","expected":"\\[EMAIL_1\\]"}
{"input":"PESEL: 85110304563","expected":"\\[PESEL_1\\]"}
{"input":"IBAN: PL61 1090 1014 0000 0712 1981 2874","expected":"\\[IBAN_1\\]"}
{"input":"Urodzona 22 lipca 1988 r. Klara Wójcik mieszka w Toruniu.","expected":"\\[DATA_URODZENIA_1\\]"}
{"input":"Paczka zostanie wysłana jutro z Poznania.","expected":"^Paczka zostanie wysłana jutro z Poznania\\.$"}
Uruchom ewaluację (Python)
import json, re
cases = [json.loads(l) for l in open("eval-anonimizacja-tekstow-rodo.eval.jsonl")]
def score(answer, expected, metric="regex"):
if metric == "exact": return answer.strip() == expected.strip()
if metric == "regex": return re.search(expected, answer) is not None
return expected.lower() in answer.lower() # contains (llm-judge : faire noter par un modèle)
def run(ask): # ask(input) -> réponse du modèle
ok = sum(score(ask(c["input"]), c["expected"]) for c in cases)
print(f"{ok}/{len(cases)} réussis ({100 * ok // len(cases)} %), seuil 100 %")
Społeczność
Brak komentarzy. Podziel się opinią, pomoże to kolejnej osobie.