50 lines
3.2 KiB
Markdown
50 lines
3.2 KiB
Markdown
# 生产内容安全服务适配
|
||||
|
|
|
|||
|
|
## 1. 处理边界
|
|||
|
|
|
|||
|
|
Worker以两层策略保护故事、事实和后续记忆。第一层是进程内固定高风险规则,识别验证码、支付账户、提示注入和高敏医疗内容;命中后直接生成不含原文的受控提示,原文不发送给内容模型或外部安全服务。第二层是生产托管策略,分别检查准备送给内容模型的长者话轮和模型返回的摘要、开放话题、故事、事实组合文本。
|
|||
|
|
|
|||
|
|
托管策略返回`BLOCK`或`REVIEW`时,Worker只保存受控摘要和开放提示,不创建普通故事、事实或记忆。网络失败、超时、408/425/429/5xx、不可解析响应和不符合协议的响应均按可重试错误安全阻断;其他4xx作为永久配置或请求错误进入现有死信治理。任何失败都不会被降级解释为允许。
|
|||
|
|
|
|||
|
|
## 2. HTTP协议
|
|||
|
|
|
|||
|
|
Worker对`CONTENT_SAFETY_ENDPOINT`执行`POST`,使用`Authorization: Bearer <API Key>`和`Content-Type: application/json`。请求为:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"policy_ref": "elder-story-production-v1",
|
|||
|
|
"content": "待分类文本"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
成功响应必须是:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"decision": "ALLOW",
|
|||
|
|
"sensitivity": "normal",
|
|||
|
|
"reason_code": "",
|
|||
|
|
"request_ref": "provider-audit-reference"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
`decision`只允许`ALLOW`、`BLOCK`、`REVIEW`;`sensitivity`只允许`normal`、`sensitive`、`high`。阻断或复核必须返回由小写字母、数字、下划线或连字符组成且不超过64字符的`reason_code`。`request_ref`用于供应商侧审计关联,不写入普通业务正文。响应正文、API Key和待分类文本不会拼入应用错误。
|
|||
|
|
|
|||
|
|
## 3. 配置
|
|||
|
|
|
|||
|
|
| 变量 | 说明 |
|
|||
|
|
|---|---|
|
|||
|
|
| `CONTENT_SAFETY_PROVIDER` | 本地开发为`local`;生产必须为`managed_http` |
|
|||
|
|
| `CONTENT_SAFETY_ENDPOINT` | 托管分类服务绝对地址;生产必须为非本地HTTPS |
|
|||
|
|
| `CONTENT_SAFETY_API_KEY` / `_FILE` | Bearer密钥;二者只能配置一个,生产建议CSI文件 |
|
|||
|
|
| `CONTENT_SAFETY_POLICY_REF` | 经业务、安全和法务批准的不可变策略版本 |
|
|||
|
|
| `CONTENT_SAFETY_TIMEOUT` | 单次HTTP超时,默认5秒 |
|
|||
|
|
|
|||
|
|
生产Worker在连接数据库前执行配置门禁,拒绝本地提供器、HTTP或本地端点、占位/短密钥和本地策略名。Kubernetes基线从`voice-platform-model-storage`目录读取`content-safety-api-key`;生产覆盖层必须替换ConfigMap中的`.example.invalid`与`replace-with-*`占位值。
|
|||
|
|
|
|||
|
|
启用托管策略时,Worker还按`EXTERNAL_PROBE_INTERVAL`对策略端点执行无正文的DNS、TCP和受信TLS握手,结果写入`content_safety_tls`外部依赖状态和Prometheus指标。连续5分钟不可用触发`PlatformExternalDependencyUnavailable`,但不进入Pod readiness,避免网络抖动引发重启风暴;生产候选验收快照必须把该依赖列为必需项。
|
|||
|
|
|
|||
|
|
## 4. 验收
|
|||
|
|
|
|||
|
|
日常开发只运行适配器和配置的定向测试,覆盖正常允许、本地命中不外发、托管复核阻断、临时故障重试以及永久4xx。发布候选仍需在真实账号和目标策略上完成`VERIFICATION_CODE`、`FINANCIAL_ACCOUNT`、`PROMPT_INJECTION`、`SENSITIVE_MEDICAL`、`NORMAL_BENIGN`、`MODEL_OUTPUT_SAFETY`六类证据,并由`cmd/agent-models-conformance`形成不可豁免报告。
|