Dade
ad9c74ba64
fix(service): 模型错误提示 - 按上游正文归类 400/422 失败原因 (#327)
上游返回 400/422 时,providerUserFacingErrorMessage 只按状态码返回固定文案
「模型服务拒绝了请求,请检查模型和参数」,捕获到的 providerHTTPError.Body
从未参与判断。用户看到的原因与真实原因无关:内容审核、额度不足、模型无权限
都会被提示成参数问题,导致排查方向错误。
providerPayloadErrorMessage 已经实现了正确的归类逻辑,但只在 HTTP 成功后的
正文解析路径上生效,HTTP 失败路径取不到。
本次改动:
- 抽出 providerPayloadErrorCategory,归类失败时返回 ok=false,调用方退回原有
通用文案,不因为归类失败而改变现有行为。
- providerUserFacingErrorMessage 仅对 400/422 解析正文。401/403/404/5xx 的正文
可能是网关 HTML、鉴权诊断或含密钥的内部信息,不参与归类,且这些状态码本身
已有更贴切的固定文案。
- 新增真人肖像类目:部分视频模型(如火山方舟 Seedance)会以
InputImageSensitiveContentDetected.PrivacyInformation 拒绝含真人的输入图片,
原先落到默认分支,提示为参数问题。该类目只匹配供应商错误码中的稳定标识
(privacyinformation / sensitivecontentdetected),不扫描自然语言:正文经常
回显用户提示词,按「肖像」「likeness」这类词判断会把普通参数错误误报。
归类结果始终是固定文案,正文只参与匹配,不会进入用户可见错误。请求分析仍按
既有方式记录经过脱敏的响应正文,本次改动没有新增日志路径。
验证:backend gofmt 无输出;go test ./... 除 TestAutoDLPluginArtifact、
TestPluginRuntimeDropsRemovedBundledProtocol、
TestAutoDLPluginPackageInstallsThroughUploadRuntime 外全部通过,这三项在未改动
的 upstream/main 上同样失败。
2026-08-27 09:14:51 +08:00
..
2026-08-26 15:02:42 +08:00
2026-08-26 21:36:48 +08:00
2026-08-26 15:02:42 +08:00
2026-08-26 13:11:10 +08:00
2026-08-17 17:20:00 +08:00
2026-08-26 15:02:42 +08:00
2026-08-27 09:14:51 +08:00