Files
story/docs/content-safety-provider.md

50 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 生产内容安全服务适配
## 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`形成不可豁免报告。