SuperAPI AI 工具集

api-proxy-safety

编程与开发

查看项目

更新于 10-15 21:11

技能介绍

本规范适用于网关、代理、WAF、CDN 等中间件在响应处理环节做关键词匹配的实现,目标是解决纯子串匹配带来的误判问题。

用途与背景:当业务响应正文本身包含 cloudflare、502 bad gateway、bad gateway、reconnecting、upstream error 等关键词的字面值时,纯 strings.Contains 匹配会把正常响应判为伪成功错误,进而触发站点切换、上游降级,或错误标记模型/节点不可用。关键前提是:关键词出现在长正文中不等于响应存在问题。

主要能力与做法:将关键词拆分为强特征与弱特征,并结合 HTTP 元数据做分层判定。判定层优先级为:HTTP status(2xx 正常,5xx/429/某些 403 错误)最高;其次 Content-Type(text/event-stream 保持流式处理,application/json 检查 schema);再次响应 schema 与错误字段(error.code、error.message、success:false 等);正文关键词匹配仅作启发式证据,不作为唯一事实。

强特征可任意长度命中,包括完整错误语句与 HTML 错误页特征,例如 exceeded retry limit, last status: 429 too many requests、must be enabled in your dashboard first、unexpected status 502 bad gateway: error code: 502、reconnecting...、<html、<title>5、cf-ray:。

弱特征仅在内容不超过 512 字节时命中,包括 429 too many requests、502 bad gateway、bad gateway、upstream error、upstream connect error、just a moment、cloudflare 等。判定函数先做小写归一化,遍历强特征;若长度超过 512 字节直接返回 false;否则再遍历弱特征。

不同场景策略:聊天长正文用强特征任意长度加弱特征限 512 字节;错误消息为短文本可全量匹配、不限长度;流式分块响应需等完整块或按内容格式切割后再匹配。实现时可用自检问题与回归测试覆盖长正文误判场景。

限制:资料未提供完整 512 字节判定阈值的来源依据、其他语言实现、性能开销数据或具体部署方式;流式处理细节仅指向 HTTP streaming 分类目标实现,未展开。