Personal Data
The presidio classifier detects personal data, such as names, email addresses, phone numbers, and card numbers, using a Microsoft Presidio analyzer service.
Configuration
classifiers:
pii0:
type: presidio
options:
endpoint: http://presidio-analyzer:3000
language: en
threshold: 0.6
timeout: PT5S
labels:
email: EMAIL_ADDRESS
person: PERSONZilla sends the text to the analyzer's /analyze endpoint. A label is detected when the analyzer finds its entity type at or above the threshold score.
| Option | Meaning |
|---|---|
endpoint | Base URL of the Presidio analyzer |
labels | Your label names, each mapped to a Presidio entity type, such as EMAIL_ADDRESS, PERSON, PHONE_NUMBER, CREDIT_CARD, or US_SSN |
threshold | Minimum confidence score, from 0 to 1, for an entity to count. Default 0 |
language | Language of the text. Default en |
timeout | How long to wait for the analyzer. Default PT5S |
Running the Analyzer
The analyzer runs as its own service, for example the mcr.microsoft.com/presidio-analyzer container image. If the analyzer can't be reached, times out, or returns an error, the value is treated as detected and rejected.
Rejecting Personal Data in Prompts
north_llm_proxy:
type: llm
kind: proxy
options:
guardrails:
gpt-4o-mini:
request:
- section: user-text
value:
model: classify
reject:
pii0:
- emailA prompt for gpt-4o-mini whose user text contains an email address is rejected with 400 before it reaches the provider. See LLM Guardrails.

