jane@acme.com → [EMAIL]),因此模型仍然读到一个连贯的
提示词,而原始值永远不离开你的工作区。
本页专注于脱敏渲染成什么、如何更改标签,以及如何在一条
规则上脱敏某些实体而拦截另一些。完整的引擎——每种规则
类型、阶段和路由——请见防护栏参考,
专门针对请求上脱敏的内容见
输入阶段规则。
1. 用带类型的标签脱敏 LLM 提示词携带的敏感数据
带 mask 动作的pii 规则会检测一个实体,并把每个匹配项
替换为一个带类型的编辑标签——一个方括号中的大写标签,它
指明什么被移除了,而不透露值:
| 实体 | 渲染标签 |
|---|---|
email | [EMAIL] |
credit_card | [CREDIT_CARD] |
ssn | [SSN] |
email、phone、credit_card、ssn、
ip、iban、mac_address、jwt、aws_access_key、api_key_openai、
bitcoin_address,再加上区域性的 jp_mynumber、kr_rrn 和
cn_resident_id——每一个都渲染它自己的方括号标签([PHONE]、
[IBAN]、[JP_MYNUMBER] 等)。标签是确定性的:同一个实体总是
渲染同一个标签,因此下游提示词保持稳定,你的日志读起来也
干净。
对于模型质量,带类型的标签胜过一刀切的
[REDACTED]。模型仍然
知道它看的是一个 email 还是一个账号还是一个电话号码,因此它
可以继续推理数据的形态——“reply to [EMAIL]”仍然是一条可
执行的指令——而永远不持有真实值。2. 一个具体示例
在控制台中你自己的会话下编写规则——防护栏配置需要 Developer+,而不是中继密钥。给一个名为pii-shield 的防护栏
添加单条 pii 规则:
guardrail_id,或将它标记为工作区
默认值——参见绑定到密钥),
然后用那个 sk-orca-... 中继密钥调用网关:
[EMAIL] about her SSN
[SSN]”。上游模型永远看不到该地址或号码。先在编辑器的 Test
标签页中证明确切的渲染(无上游调用,无配额)——参见
测试与 eval。
3. 用 mask_with 覆盖标签
内置实体渲染一个固定的标签。自定义实体——你自己叠加在内置
集合之上的正则检测器——让你用 mask_with 自己设置替换文本:
mask_with 做什么
mask_with 做什么
mask_with 是该实体匹配项的逐字替换字符串。EMP-004217
变成 [STAFF_ID]。把它留空,匹配项就渲染默认标签
[<UPPERCASE_NAME>]——这里是 [EMPLOYEE_ID]——因此即使没有
覆盖,自定义检测器也总是产生可读的、带类型的编辑结果。自定义实体字段
自定义实体字段
name(小写 ASCII / 数字 / 下划线,必须以字母开头)、pattern
(一个 Go RE2 正则——线性时间,无反向引用)、可选的 checksum
(luhn 校验类卡号),以及可选的 mask_with。每条规则最多
25 个自定义实体——每个都是对全文的一次扫描,因此该上限
让热路径保持线性。参见
自定义 PII 实体。4. 脱敏某些实体,拦截另一些——entity_actions
单条 pii 规则可以通过 entity_actions 对不同实体应用不同
动作,而不必堆叠三条互相重叠的规则。经典形态:脱敏低
敏感度的联系数据,但直接拦截高敏感度字段。
email、phone 和 ip 遵循规则的顶层 mask 并渲染
[EMAIL] / [PHONE] / [IP];而一个 credit_card 或 ssn 匹配
则以 HTTP 400
guardrail_blocked
拦截整个请求。
| 字段 | 规则 |
|---|---|
| 键 | 必须是规则上声明的实体(内置或自定义)。 |
| 值 | block、mask、flag 或 annotate。 |
被拦截的请求不消耗配额——输入阶段拦截在计量之前触发。
被脱敏的请求带着净化后的文本通过。所以一条规则可以悄悄脱敏
常规字段并硬性阻止受监管的字段,只需一次绑定,无需修改应用。
5. Mask vs. block vs. flag
脱敏是规则(或按实体覆盖)可以采取的动作之一。按你想干扰 流量的程度来选择:mask
把匹配项脱敏为一个带类型的标签,并带着净化后的文本放行
请求。模型永远看不到原始值。
block
以 HTTP 400
guardrail_blocked 拒绝整个请求。什么都不到达
模型。用它处理绝不能传输的数据。flag
不改变流量的任何方面——只记录一条匹配。在执行某条规则之前
衡量它会触发的频率。
6. 验证什么被脱敏了
每条触发的规则都会在工作区 Matches 信息流中记录一条 匹配——规则类型、动作、阶段和一个详情字符串。匹配的子串 本身(原始 email、实际卡号)仅在开启 Log raw content 时才记录,而它默认关闭——隐私保守的姿态,因为整个重点就是 让原始值不进入你的日志。7. 接下来去哪里
- PII Shield 预设——你可以一键 应用的单规则、全脱敏起点。
- 自定义 PII 实体——用
mask_with和可选的luhn编写你自己的正则检测器。 - 输入阶段规则——脱敏今天 实时运行的地方,在模型之前、计量之前。
- 拦截密钥——对于凭证, 拦截(而不是脱敏)才是正确选择。
- 流式覆盖——今天哪些 阶段/流组合是脱敏 vs. 拦截。
