错误与拒答/模型拒答
模型拒答识别
Claude 模型拒答时,Wokey 原样转发 Anthropic 的拒答信息。下游平台可以按下面的字段识别拒答并做风控处理。
概要link
- 拒答时 HTTP 状态码是 200,不是错误码。需要按响应里的字段识别。
- 拒答原因在响应结尾。流式响应中,拒答前已经下发的内容不会撤回。
- Wokey 不改写拒答内容,原文由 Anthropic 提供。
按接口格式识别link
Anthropic Messages /v1/messages
识别条件 stop_reason == "refusal"
分类在 stop_details.category,说明在 stop_details.explanation。流式在结尾的 message_delta 事件里,非流式在 message 对象顶层。
SSE
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"refusal","stop_sequence":null,"stop_details":{"type":"refusal","category":"cyber","explanation":"This request triggered ..."}},"usage":{...}}
event: message_stop
data: {"type":"message_stop"}OpenAI Chat Completions /v1/chat/completions
识别条件 finish_reason == "content_filter"
说明在 refusal 字段:流式在最后一个 chunk 的 choices[0].delta.refusal,非流式在 choices[0].message.refusal,此时 message.content 为 null。这个格式不带 category。
SSE
data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{"refusal":"This request triggered ..."},"finish_reason":"content_filter"}],"usage":{...}}
data: [DONE]OpenAI Responses /v1/responses
识别条件 output 中出现 type 为 "refusal" 的内容块
说明在内容块的 refusal 字段;流式会收到 response.refusal.delta 和 response.refusal.done 事件,output_text 为空字符串。这个格式不带 category。
SSE
event: response.refusal.done
data: {"type":"response.refusal.done","item_id":"msg_...","output_index":0,"content_index":0,"refusal":"This request triggered ..."}拒答分类与原文link
| category | 含义 | explanation 原文 |
|---|---|---|
| reasoning_extraction | 违反服务条款:逆向或复制模型输出(蒸馏) | This request was blocked as it seems to violate Anthropic's Terms of Service restrictions on reverse engineering or duplicating model outputs. To learn more, visit https://www.anthropic.com/legal/commercial-terms. |
| frontier_llm | 违反服务条款:开发竞品模型 | This request was blocked as our automated systems flagged that it may violate Anthropic's Terms of Service restrictions on developing competing model products. To learn more, visit https://www.anthropic.com/legal/commercial-terms. |
| cyber | 网络安全类内容(Opus 5 及以后、Fable、Sonnet 5.5) | This request triggered restrictions on violative cyber content and was blocked under Anthropic's Usage Policy. To learn more, see https://platform.claude.com/docs/en/build-with-claude/refusals-and-fallback. |
| cyber | 网络安全类内容(Opus 4.x、Sonnet 5、Haiku 5.5) | This request triggered cyber-related safeguards. To learn about the Cyber Verification Program and apply for access, visit our help center: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude. |
| general_harms | 一般危害类内容,例如爆炸物 | This request triggered restrictions on content related to the development of high-yield explosives and was blocked under Anthropic's Usage Policy. To learn more, provide feedback, or request an exemption based on how you use Claude, visit our help center: https://support.claude.com/ |
| bio 等 | 生物类等内容,上游不提供说明 | Anthropic 格式没有 explanation 字段;OpenAI 两种格式返回 "The upstream model refused this request." |
注意事项link
- 原文由 Anthropic 提供,可能随时调整。建议优先按识别条件和 category 判断,不要只依赖原文字符串匹配。
- OpenAI 两种格式不带 category,需要分类时可以用上表的原文对照。