Budowa zgodnego z RODO systemu AI wsparcia klienta: usuwanie PII i niestandardowych identyfikatorów
Systemy wspiera klienta oparte na AI muszą obsługiwać dwa rodzaje danych:
- Standardowe PII: SSN, email, numer telefonu, adres
- Niestandardowe identyfikatory: ID klienta, numer rachunku, numer biletu, kod referencyjny
Problem
Agenci wsparcia klienta piszą:
"Cześć John Smith (SSN: 123-45-6789, Customer ID: CUST-98765), Twój rachunek (ACC-54321) ma zaległy opłatę $150."
AI zapisuje całą rozmowę. Później:
- Aby wytrenować model, przesyłasz rozmowy do OpenAI
- Wszystkie dane są teraz w treningowym zbiorze AI
- Model nauczył się mapowania John Smith → CUST-98765 → ACC-54321
Wyzwania
Standardowe PII: łatwe do pominięcia z regex
- SSN:
\d{3}-\d{2}-\d{4} - Email:
\S+@\S+\.\S+
Niestandardowe ID: trudne
- Każda firma ma inne formaty
- "CUST-" to numer klienta, ale "ORD-" to numer zamówienia
- Bez Business Logic Rules nie wiesz, co ukryć
Warstwowe podejście
- Tier 1 - Standardowe PII: Zastosuj regex dla wszystkich znanych wzorów
- Tier 2 - Dostosowywane do biznesu: Dodaj reguły dla Twoich identyfikatorów
- Tier 3 - Kontekstowe: Użyj NLP do identyfikacji referencji typu "Twój rachunek"
Przykład implementacji
Before anonymization:
"Cześć John Smith (SSN: 123-45-6789), Twój rachunek CUST-98765 ma problem"
Tier 1 - Regex PII removal:
"Cześć [NAME] (SSN: [SSN]), Twój rachunek CUST-98765 ma problem"
Tier 2 - Custom ID rules:
"Cześć [NAME] (SSN: [SSN]), Twój rachunek [CUSTOMER_ID] ma problem"
Tier 3 - Context-aware:
"Cześć [NAME] (SSN: [SSN]), [ACCOUNT_REFERENCE] ma problem"
Implementacja z Presidio
from presidio_analyzer import AnalyzerEngine
from presidio_anonymizer import AnonymizerEngine
analyzer = AnalyzerEngine()
anonymizer = AnonymizerEngine()
# Custom pattern for customer IDs
customer_id_pattern = r'CUST-\d+'
analyzer.add_pattern('CUSTOMER_ID', customer_id_pattern)
text = "John Smith (SSN: 123-45-6789), Customer ID: CUST-98765"
results = analyzer.analyze(text)
anonymized = anonymizer.anonymize(text, results)
RODO wymogi
Artykuł 32 RODO wymaga "odpowiednich technicznych i organizacyjnych środków" w tym pseudonymizacji. Jeśli przesyłasz rozmowy wsparcia klienta do modelu AI:
- Musisz anonimizować WSZYSTKIE identyfikatory
- Nie wystarczy usunąć SSN - musisz też usunąć identyfikatory wewnętrzne
- Dokładne mapowanie John Smith → CUST-98765 jest PII pod RODO Art. 4
Częste błędy
- Anonimizacja tylko SSN: Zapominasz o ID klienta
- Anonimizacja ale nie pseudonymizacja: Zachowujesz możliwość re-identyfikacji
- Brak dokumentacji: Nie prowadzisz dokumentu który identyfikator został zastąpiony
Zaključak
GDPR-compatible customer support AI wymaga wielowarstwowego podejścia do anonimizacji. Nie wystarczy masować SSN - musisz zdefiniować i anonimizować wszystkie wewnętrzne identyfikatory, zanim dane pójdą do treningu modelu.