跳转到主要内容
你想让个人数据不进入上游模型。一个客户粘贴了一个 email 地址,一份支持记录携带着卡号,一个智能体提示词泄露了一个 SSN——这些都不应以明文到达 OpenAI、Anthropic 或 Google。 PII Shield 是修复这个问题最快的方式:一个单规则的防护栏 预设,它在请求中检测敏感实体,并在网关转发调用之前把每一个 脱敏为一个带类型的标签。 这是 PII 脱敏用例的专注落地页。完整的防护栏引擎——每种规则 类型、字段和路由——请见防护栏参考

1. 一条规则搞定 LLM PII 脱敏用例

LLM PII 脱敏管道难的部分通常在于管道本身。PII Shield 把它 去掉了。该预设是一条单条 pii 规则
  • Type: PII detection(pii
  • Action: Mask——把每个匹配项替换为一个带类型的标签
  • Entities: emailphonessncredit_cardip
在控制台中应用一次,把它绑定到一个密钥,那个密钥上的每一次 调用都会被筛查,无需修改 SDK,无需重新部署。策略存在于网关中, 而不在你的应用中——你的应用继续像以前一样调用 /v1/chat/completions
输入阶段脱敏是已上线的路径。 PII Shield 在请求离开网关 之前脱敏它,因此上游模型永远看不到原始值。对模型输出和 流式响应的实时脱敏在规划路线图上;把 PII Shield 理解为擦洗 你发送的内容,而不是返回的内容。要在今天把关模型的响应, 一条输出 block 规则两种方式都会执行——参见 输出阶段规则流式覆盖

2. 在控制台中应用预设

这里的每一步都是你会话下托管网关上的控制台操作。创建和 编辑防护栏需要工作区中的 Developer+。只有最后的 /v1/* 调用使用 sk-orca-... 中继密钥。
1

打开模板

在控制台中打开 Guardrails,点击 New guardrail 分裂 按钮,从 PII 模板类别中选择 PII Shield。它会播下一条 脱敏 pii 规则的种子。
2

命名并保存

给它起一个名字(≤ 64 字符),例如 pii-shield,并保存。预设 是种子,而不是锁——之后可以自由编辑实体列表或动作。
3

测试它

打开 Test 标签页,在 input 阶段粘贴一个样本,并在本地 运行该策略——没有上游调用,没有配额(参见 §4)。
4

绑定一个密钥

编辑一个 API 密钥,从 Guardrail 下拉菜单选择 pii-shield (在密钥上设置 guardrail_id),或将它标记为工作区默认值。 参见绑定到密钥账户默认值

3. 哪些会被脱敏,脱敏成什么

mask 动作下,每个匹配项会被替换为一个带类型的标签—— email 变成 [EMAIL],SSN 变成 [SSN]。内置检测器集合是封闭的, 由引擎、沙箱和规则构建器共享:
emailphonecredit_cardssnipibanmac_addressjwtaws_access_keyapi_key_openaibitcoin_address
jp_mynumber(日本 My Number → [JP_MYNUMBER])、kr_rrn (韩国 RRN → [KR_RRN])和 cn_resident_id(中国居民身份证 → [CN_RESIDENT_ID])。启用与你的司法辖区匹配的那些。
在内置之上叠加一个正则检测器——一个 employee_id、一个 内部账号——带可选的 luhn 校验和一个自定义替换。每条规则 最多 25 个。参见 自定义 PII 实体脱敏格式
一条 PII 规则可以通过 entity_actions不同实体应用不同 动作——脱敏 email / phone / ip,但对 credit_cardssn 执行 block。无需互相重叠的规则。参见 动作

4. 绑定前先测试

在任何密钥指向它之前,先证明规则如你所愿地工作。打开编辑器内 的 Test 标签页,粘贴一个样本,选择 input 阶段,然后运行:
Reply to jane@acme.com please
沙箱在本地评估当前策略,并返回判定结果加上渲染后的文本—— 不会向上游发送任何内容,也不计量:
Reply to [EMAIL] please
要针对一个语料库做 A/B 对照, Eval 工具就在隔壁那个 标签页。

5. 发送请求

用一个绑定到 pii-shield 的密钥,像以前一样调用 OrcaRouter—— 无需新的请求头,无需修改 SDK:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "Reply to jane@acme.com please"}
    ]
  }'
网关会在转发前把 email 脱敏为 [EMAIL]——上游模型收到的是 Reply to [EMAIL] please,永远看不到该地址。
把某个实体的动作换成 block(通过按实体覆盖),紧接着下一个 携带该实体的请求就会以 HTTP 400 guardrail_blocked 被拒绝。 被拦截的请求不消耗配额(输入拦截在计量之前触发)并被标记为 skip-retry。参见 guardrail_blocked 错误

6. 查看触发了什么

每条触发的规则都会记录一条匹配——规则类型、动作、阶段和 一个详情字符串——呈现在工作区 Matches 信息流中。匹配的 子串本身(实际的 email 地址)在开启 Log raw content 时才记录,而它默认关闭——这种隐私保守的姿态也让被脱敏的 PII 不进入你自己的遥测。
对于一个脱敏控制,让 Log raw content 保持关闭通常正是重点: 你能看到一个 email 被脱敏了以及多频繁,而不必重新捕获你 刚刚擦洗掉的值。只有在你需要子串进行分诊时才按防护栏开启它; 该设置不可追溯。参见 Matches 信息流日志与隐私

7. 接下来去哪里

自定义 PII 实体

添加你自己的正则检测器,带可选的 Luhn 校验,每条规则最多 25 个。

脱敏格式

控制每个实体渲染成的带类型标签。

拦截密钥

用 Secrets Blocker 预设捕获 API 密钥和凭证。

调优误报

从 Matches 信息流标记误报并收紧检测器。
PII Shield 脱敏内容。要治理智能体的工具调用——拒绝 破坏性动作、脱敏工具调用参数、要求审批——请使用 防火墙。从 保护 AI 智能体数据外泄威胁开始,或阅读 防护栏参考以了解完整引擎。