错误响应示例
始终会返回的字段
generation_id:稳定的请求 ID,可提供给支持团队。status_code:与 HTTP 状态代码一致。error:机器可读的错误代码,例如validation_error。error_type:较高层级的分类,通常为user或system。error_origin:指出问题主要由调用方、Phaseo 还是上游提供商导致。description:对问题的通俗说明。details(可选):请求验证失败时提供结构化的验证详情。
可能出现的其他字段
部分错误会包含更多详情,帮助你更快解决问题:reason:更具体的原因,例如all_candidates_failed或pricing_not_configured。provider_candidate_diagnostics和provider_enablement:解释为何无法使用模型处理所请求的端点。routing_diagnostics:说明路由或可用性检查如何缩小请求范围。provider_failure_diagnostics:关于凭证缺失、访问权限不足、区域限制、速率限制及其他提供商侧失败的提示。upstream_error和failure_sample:如果请求到达了提供商,则尽可能总结首次提供商故障。failed_providers、failed_statuses和attempt_count:重试和故障转移的补充信息。
状态码类别指南
常见错误代码
提供商故障时
如果 Phaseo 已连接到提供商,但请求仍然失败,你可能会看到:provider_failure_diagnostics.categoryprovider_failure_diagnostics.hintprovider_failure_diagnostics.provider
credentials_not_configuredcredentials_invalid_or_forbiddenprovider_access_missingregion_or_project_restrictionmodel_unavailable_for_endpointrate_limitedserver_error
模型或端点不可用时
对于unsupported_model_or_endpoint 响应,Phaseo 可能会返回:
provider_candidate_diagnosticsprovider_enablementmissing_pricing_providersrouting_diagnostics
- 已知但尚未启用的模型
- 不支持所请求端点的模型
- 缺少价格数据
- 发布阶段或内部可用性限制
provider_candidate_diagnostics.totalProviders:按端点筛选之前,该模型已知的提供商数量。provider_candidate_diagnostics.supportsEndpointCount:其中支持所请求端点的提供商数量。provider_candidate_diagnostics.candidateCount:适配器检查后剩余的提供商数量。provider_candidate_diagnostics.droppedUnsupportedEndpoint:因不支持该端点而移除的提供商。provider_candidate_diagnostics.droppedMissingAdapter:因 Gateway 尚无该端点适配器而移除的提供商/端点组合。provider_enablement.capability:正在执行的能力门控,例如video_generation。provider_enablement.providersBefore/provider_enablement.providersAfter:能力或启用筛选前后的提供商。provider_enablement.dropped[].reason:机器可读原因,例如pricing_missing。routing_diagnostics.filterStages[].stage:路由阶段,例如能力、发布或路由状态筛选。routing_diagnostics.filterStages[].beforeCount/routing_diagnostics.filterStages[].afterCount:每个阶段前后的提供商数量。routing_diagnostics.filterStages[].droppedProviders[].reason:机器可读原因,例如发布或路由限制。
示例
可选调试模式
大多数请求架构都支持debug 对象,用于受控的问题排查:
enabledreturn_upstream_requestreturn_upstream_responsetracetrace_level(summary或full)
重试策略
- **429 以外的 400 系列错误:**重试前请修正请求、凭据或访问策略。
- **429:**实施指数退避并遵循
Retry-After标头。 - **500 系列错误:**仅在重复操作安全时进行有限重试。结果不明确的提交可能已经创建了任务或产生了费用;请获取已受理的任务,而不要重新提交。
流式传输注意事项
- 如果请求在流式传输开始前失败,会收到标准 JSON 错误负载。
- 如果请求在流式传输期间失败,请将不完整的部分流视为未完成,并提供重试选项。
- 请始终记录
generation_id以及端点和模型元数据。
故障排查提示
- 查看 Gateway 状态页了解正在发生的事故。
- 对照端点文档检查请求负载。
- 联系支持团队时,请提供
generation_id。
相关资源
身份验证
使用 Bearer API 密钥进行身份验证。
限制
处理提供商驱动的限流和重试。
流式传输
在生产流程中安全使用 SSE。