AI GitHub
Presidio for detecting and transforming personal data
Identify likely personal information in text and apply redaction or replacement rules.
Key Takeaways
- Presidio separates analysis from anonymization.
- Choose recognizers for the supported languages and identifier types.
- Create synthetic records with emails, account numbers and plausible distractors.
- Detection quality varies by language and domain.
How it works
Presidio separates analysis from anonymization. The analysis layer uses recognizers to locate entities and the anonymizer applies configured transformations to those spans.
What you need
Choose recognizers for the supported languages and identifier types. Test the transformation rules separately so a detected value can be redacted, replaced or retained as intended.
What to try first
Create synthetic records with emails, account numbers and plausible distractors. Inspect false positives and negatives before deciding which fields to redact.
Test over-redaction on synthetic public names and under-redaction on local identifiers. Both affect whether transformed text remains useful in downstream applications.
Where to look for failures
Detection quality varies by language and domain. Add custom recognizers for local identifiers and test with hand-labeled examples.
Related Franklin pages
Separate policy checks, structured output validation and data redaction. Apply a narrowly defined test to each layer before measuring the combined application behavior.
- Define checks and conversational flows around an application's model calls. NeMo Guardrails for policy around model conversations
- Apply validators to model outputs before downstream code consumes them. Guardrails AI for validating generated output
For broader questions about the risks of deploying AI systems, see Franklin’s glossary. AI safety
Project documentation
Try it for your workflow
Explore the project’s documentation for setup and usage, or save this page to a collection for later.
Read the project documentation ↗