接口
错误码
出错时的 HTTP 状态码、响应格式,以及什么情况下该重试。
出错时返回对应的 HTTP 状态码,响应体格式如下:
{
"error": {
"code": "insufficient_balance",
"message": "Insufficient balance. Please top up your account.",
"type": "invalid_request_error"
}
}5xx 错误的 type 是 server_error,其余是 invalid_request_error。
- 提交时出错(4xx):不会创建任务,不扣费。
- 运行中失败:任务的
status变成failed,error里是同样格式的code和message,费用全额退回。
| HTTP | code | 含义 |
|---|---|---|
| 400 | invalid_request | 请求体或参数不合法,message 会说明哪里有问题。 |
| 400 | route_not_offered | 指定的线路不提供这个模型。 |
| 400 | no_route_selected | 你的线路设置把这个模型的线路都排除了。 |
| 400 | price_above_max | 所选线路都超过了你设的最高价。 |
| 400 | unsupported_parameters | 所选线路都不支持这组参数。 |
| 400 | content_policy_violation | 请求被内容审核拒绝。 |
| 401 | unauthorized | API 密钥缺失或无效。 |
| 402 | insufficient_balance | 余额不足,请充值后再试。 |
| 402 | key_quota_exceeded | 这个 API 密钥已达到消费上限。 |
| 403 | forbidden | 这个密钥不能使用该模型,或不允许从这个 IP 调用。 |
| 403 | account_blocked | 这个账户的 API 访问已被暂停。 |
| 404 | model_not_found | 没有这个在售模型。 |
| 404 | task_not_found | 你的账户里没有这个任务。 |
| 404 | file_not_found | 没有这个上传文件,或已过期。 |
| 409 | idempotency_conflict | 这个 Idempotency-Key 已用于另一个不同的请求。 |
| 429 | rate_limited | 请求太频繁,请降低频率。 |
| 429 | too_many_tasks | 排队的任务太多,请稍后再试。 |
| 502 | generation_failed | 生成失败,没有扣费。 |
| 503 | no_available_route | 暂时没有线路可以处理这个模型,没有扣费。 |
| 504 | timeout | 生成超时,没有扣费。 |
| 500 | internal_error | 我们这边出了问题。 |
什么时候重试
- 429:稍等再试,并降低请求频率。
- 502、503、504:可以重新提交一个新任务。之前那个已经退款。
- 400、402、403、404:先修改请求、充值或调整密钥设置,原样重试没有用。