Skip to content

PII Filter

Detect and redact personally identifiable information in LLM message content.

Detect and redact personally identifiable information in LLM message content.

Sensitivity levels

  • relaxed: email, SSN, credit card (Luhn-validated)
  • balanced (default): + phone (Google libphonenumber, 250+ countries), IPv4 (octet-validated), IBAN (mod-97), DoB, salutation-prefixed names, EIN
  • strict: + US passport numbers, generic hex secrets

Options: pii_types, allowlist, custom_patterns, action (redact/mask/hash), sensitivity.

FieldTypeDefaultDescription
pii_types`arraynull`None
sensitivitystring"balanced"'relaxed' = email, SSN, credit card only (no phone). 'balanced' (default) = + phone (libphonenumber), IPv4, IBAN, DoB, names, EIN. 'strict' = all types, no context requirement.
actionstring"redact"Replacement format for detected PII (not credentials). 'redact' → [protected:TYPE] (default). 'mask' → ****. 'hash' → [protected:TYPE:HASH8] (referential integrity).
allowlistarray[]Values left untouched regardless of detection (e.g. known-safe emails).
custom_patternsarray[]Additional regex patterns added to the PII tier as relaxed-level detectors.
# Example 1
type: pii_filter
config:
sensitivity: balanced
# Example 2
type: pii_filter
config:
pii_types:
- email
- phone
- ssn
- creditcard
# Example 3
type: pii_filter
config:
action: hash
sensitivity: strict
# Example 4
type: pii_filter
config:
custom_patterns:
- name: employee_id
pattern: \bEMP-\d{6}\b