PII 检测
Semantic Router 默认支持个人身份信息(PII)检测。通过微调的 BERT 模型识别敏感数据,并基于可配置的策 略拦截请求。
概述
PII 检测系统:
- 识别用户查询中的常见 PII 类型
- 执行每个决策的可配置 PII 策略
- 拦截包含敏感信息的请求(基于信号规则)
- 集成信号驱动决策,实现精细化控制
- 记录策略违规,用于监控
支持的 PII 类型
系统可检测以下 PII 类型:
| PII 类型 | 说明 | 示例 |
|---|---|---|
PERSON | 人名 | "张三"、"John Smith" |
EMAIL_ADDRESS | 电子邮件地址 | "user@example.com" |
PHONE_NUMBER | 电话号码 | "+1-555-123-4567" |
US_SSN | 美国社会安全号码 | "123-45-6789" |
STREET_ADDRESS | 实际地址 | "123 Main St, New York, NY" |
GPE | 地缘政治实体 | 国家、州、城市 |
ORGANIZATION | 组织名称 | "Microsoft"、"OpenAI" |
CREDIT_CARD | 信用卡号码 | "4111-1111-1111-1111" |
US_DRIVER_LICENSE | 美国驾照 | "D123456789" |
IBAN_CODE | 国际银行账号 | "GB82 WEST 1234 5698 7654 32" |
IP_ADDRESS | IP 地址 | "192.168.1.1"、"2001:db8::1" |
DOMAIN_NAME | 域名/网站名称 | "example.com"、"google.com" |
DATE_TIME | 日期/时间信息 | "2024-01-15"、"1月15日" |
AGE | 年龄信息 | "25岁"、"1990年出生" |
NRP | 国籍/宗教/政治团体 | "美国人"、"基督徒" |
ZIP_CODE | 邮政编码 | "10001"、"SW1A 1AA" |
配置
PII 检测现在是信号层中的一等公民信号。在 signals.pii 下定义命名的 pii 规则,然后在 decisions 中通过 type: "pii" 引用它们。
基础 PII 检测
# router-config.yaml
# ── PII 分类器模型 ────────────────────────────────────────────────────────
classifier:
pii_model:
model_id: "models/mom-pii-classifier"
use_modernbert: false
threshold: 0.9
use_cpu: true
pii_mapping_path: "models/mom-pii-classifier/label_mapping.json"
# ── 信号 ──────────────────────────────────────────────────────────────────
signals:
pii:
- name: "pii_deny_all"
threshold: 0.9
description: "拦截所有 PII 类型"
# ── 决策 ──────────────────────────────────────────────────────────────────
decisions:
- name: "block_pii"
priority: 999
rules:
operator: "OR"
conditions:
- type: "pii"
name: "pii_deny_all"
plugins:
- type: "fast_response"
configuration:
message: "请求被拦截:检测到个人信息,请删除敏感数据后重试。"