Rate limits
限流策略
按账号 + IP 双维度限流。RPM = 每分钟请求数;TPM = 每分钟 token 数;concurrent = 同时进行的流式连接数。
层级
| 层级 | RPM | TPM | 并发 | 备注 |
|---|---|---|---|---|
| Free | 20 | 40,000 | 5 | 免费额度耗尽后请求会 402 |
| Pay-as-you-go | 500 | 200,000 | 30 | 默认;绑卡后自动开通 |
| Pro | 2,000 | 1,000,000 | 100 | $50/月起,dashboard 自助升级 |
| Enterprise | 自定义 | 自定义 | 自定义 | 联系 sales@solquir.com |
响应 headers
每次响应都带这几个 header 帮你预判限流:
| Header | 示例 | 含义 |
|---|---|---|
X-RateLimit-Limit-RPM | 500 | 当前层级 RPM 上限 |
X-RateLimit-Remaining-RPM | 473 | 本分钟还能发多少 |
X-RateLimit-Reset | 1778550232 | 下次重置 unix 时间戳 |
Retry-After | 12 | 429 时建议多少秒后重试 |
429 处理建议
遇到 429 时不要立刻硬重试,按指数退避:
node · exponential backoff
async function callWithRetry(fn, max = 5) {
for (let i = 0; i < max; i++) {
const res = await fn()
if (res.status !== 429) return res
const retryAfter =
Number(res.headers.get("Retry-After")) || 2 ** i
await new Promise((r) => setTimeout(r, retryAfter * 1000))
}
throw new Error("Too many retries")
}TIP如果你长期被限流,说明该升级。免费层 → Pay-as-you-go 在 dashboard 一键开通;Pro 也是 self-serve。
并发限制
流式请求(stream: true)会占用一个并发 slot,直到流结束。超过 concurrent 上限会返 503 too_many_concurrent_streams。
WARN长 prompt + 大 max_tokens + slow downstream 都可能让一个流挂十几秒。 如果你是 batch 用例,建议非流式(
stream: false)省 slot。批量 / 离线场景
需要每分钟数千请求的批量任务(数据集预处理、夜间报表等)联系 sales@solquir.com 申请 batch tier:异步队列、24h 内交付,价格大约是实时 API 的 50%。