速率限制与模型池
账户可以调用哪些模型、调用速度多快,取决于所在的模型池。模型池将模型分组,并带有每日包含额度和每分钟限制。GET /v1/models 显示适用于调用账户的内容。
| 模型池 | 开放时机 | 模型 | 每个 UTC 日包含 | 每分钟 |
|---|---|---|---|---|
| 公共池 | 注册即开放 | ppocr-v6、dinov3、siglip2 |
100 次调用 | 10 |
| 免费池 | 首次储值后 | 公共池的模型和 sam-lite |
1,000 次调用 | 60(仅限包含额度内的调用) |
| 付费池 | 首次储值后 | 全部模型:sam3、paddleocr-vl 和 birefnet 仅在此池提供 |
不适用:按调用计费 | 无固定限制 |
- 已注册账户使用公共池。超出每日额度的调用以
429 daily_limit_reached拒绝。 - 已储值账户(完成过储值的账户)还可使用免费池。每个池内模型每个 UTC 日的前 1,000 次调用免费,超出部分从余额中扣费。
sam3、paddleocr-vl和birefnet始终从余额中扣费。调用账户尚不能使用的模型,返回403 model_locked,GET /v1/models会在unlockedBy中给出解锁方式。- 每日额度在 UTC 00:00 重置。账户的调用合并计数,与使用哪个密钥无关。失败的调用会退回其占用的名额。
每个响应的 billing 对象显示由哪个模型池覆盖了该调用,以及当日的计数。详见计费。
每分钟限制是按账户的令牌桶:突发量等于每分钟限制,令牌持续补充。超出限制时返回 429 rate_limited 并带有 Retry-After 响应头。该限制由账户的所有密钥共享,采用提供该模型的模型池的限制。
已储值账户的免费池每分钟 60 次只用于控制包含的每日额度内调用的速度。超出每日额度的调用,或在每分钟 60 次已用完时到达的调用,按正常价格从余额中扣费,不受速率限制;该调用不占用每日额度,额度仍可供之后的调用使用。此时只有余额无法支付的调用才返回 429 rate_limited。并发调用仍受账户并发限制约束。批量请求遵循同一规则:一个批量请求消耗一个令牌,令牌用完时,其条目改为计费而不是免费。仅使用公共池的已注册账户仍返回 429。
账户没有固定限制时,GPU 容量不足会以 503 model_busy 或 503 model_unavailable 的形式返回。
GET /v1/models 免费、不计量,也不受模型池的速率限制。每个模型都带有描述调用账户情况的字段。
| 字段 | 含义 |
|---|---|
available |
账户当前是否可调用该模型。 |
pool |
为账户提供服务的模型池:public、free 或 paid。模型不可用时为 null。 |
freeDailyCalls |
每个 UTC 日免费包含的调用次数。没有时为 null。 |
perMinute |
每分钟调用次数。无限制时为 null。 |
unlockedBy |
模型不可用时的解锁方式,例如 top-up。 |
{ "id": "ppocr-v6", "name": "PP-OCRv6 small", "task": "ocr", "endpoints": ["/v1/ocr"], "license": "Apache-2.0", "prices": [{ "unit": "image", "price": 0.25 }], "available": true, "pool": "public", "freeDailyCalls": 100, "perMinute": 10, "unlockedBy": null}| 状态码 | 错误码 | 原因 | 处理 |
|---|---|---|---|
| 402 | insufficient_balance |
余额不足以支付调用。 | 增加额度。 |
| 403 | model_locked |
模型池或密钥范围不包含该模型。 | 增加额度,或使用范围包含该模型的密钥。 |
| 429 | rate_limited |
达到每分钟限制(已储值账户:且余额无法支付该调用)。 | 等待 Retry-After 后重试。 |
| 429 | daily_limit_reached |
公共池的每日额度已用完。 | 增加额度,或等到下一个 UTC 日。 |
完整列表详见错误。