grazz7's picture
added chatbot codes
b22c324
Raw
History Blame Contribute Delete
1.3 kB
from presidio_analyzer import AnalyzerEngine, PatternRecognizer, Pattern
from presidio_analyzer.nlp_engine import NlpEngineProvider
from presidio_anonymizer import AnonymizerEngine
_provider = NlpEngineProvider(nlp_configuration={
"nlp_engine_name": "spacy",
"models": [{"lang_code": "en", "model_name": "en_core_web_lg"}]
})
analyzer = AnalyzerEngine(nlp_engine=_provider.create_engine())
anonymizer = AnonymizerEngine()
analyzer.registry.add_recognizer(PatternRecognizer(
supported_entity="ACCOUNT_NUMBER",
patterns=[Pattern(name="account_number", regex=r"\d{3}-\d{3}-\d{3}", score=0.8)],
context=["account", "acct", "num", "number", "no.", "#"]
))
_ENTITIES = ["ACCOUNT_NUMBER", "PERSON", "PHONE_NUMBER", "EMAIL_ADDRESS", "CREDIT_CARD"]
# 2 funcs
def check_pii(text: str) -> bool:
"""Returns True if PII is detected — used by planner to block the query."""
results = analyzer.analyze(text=text, language="en", entities=_ENTITIES)
return len(results) > 0
def scrub_pii(text: str) -> str:
"""Replaces PII with placeholders — use this if you want to proceed with a sanitised query instead of blocking."""
results = analyzer.analyze(text=text, language="en", entities=_ENTITIES)
return anonymizer.anonymize(text=text, analyzer_results=results).text