速率限制说明

了解 API 速率限制规则,合理使用配额,确保服务稳定性

速率限制概述

为了确保服务的稳定性和公平性,我们对 API 调用实施了速率限制。速率限制基于订阅计划、API Key 和时间窗口进行计算。

速率限制响应

当超过速率限制时,您将收到 HTTP 429 状态码,并在响应头中包含 X-RateLimit-* 信息。

各计划速率限制

免费版 (Free)

$0/月
每分钟请求数
60 RPM
每天请求数
1,000 RPD
并发请求数
5
Token 限制:每分钟 100,000 tokens (TPM)

专业版 (Professional)

$29/月
每分钟请求数
600 RPM
每天请求数
50,000 RPD
并发请求数
50
Token 限制:每分钟 1,000,000 tokens (TPM)

企业版 (Enterprise)

定制
每分钟请求数
定制
每天请求数
无限制
并发请求数
定制
Token 限制:根据业务需求定制

速率限制响应头

每个 API 响应都会包含以下速率限制相关的响应头:

X-RateLimit-Limit
时间窗口内允许的最大请求数
X-RateLimit-Remaining
当前时间窗口内剩余的请求数
X-RateLimit-Reset
速率限制重置的 Unix 时间戳(秒)
X-RateLimit-Retry-After
建议重试的等待时间(秒)
示例响应头
HTTP/1.1 200 OK
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 599
X-RateLimit-Reset: 1711363200
Content-Type: application/json

速率限制错误响应

当超过速率限制时,API 将返回 HTTP 429 状态码:

HTTP 429 Too Many Requests
{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please retry after 60 seconds.",
    "type": "rate_limit_error",
    "retry_after": 60
  }
}

处理建议

收到 429 错误后,建议使用指数退避算法进行重试,并遵循 Retry-After 响应头中的建议等待时间。

最佳实践

监控响应头

始终检查 X-RateLimit-* 响应头,了解当前配额使用情况

实现指数退避

在收到 429 错误后,使用指数退避策略进行重试,避免持续触发限制

批量处理请求

合理组织批量请求,避免短时间内大量并发调用

实施缓存策略

对重复或相似的请求结果进行缓存,减少 API 调用次数

升级订阅计划

如果经常触及限制,考虑升级到更高的订阅计划以获得更大配额

处理速率限制的代码示例

Python - 指数退避重试
import time
import openai
from openai import RateLimitError

def call_api_with_retry(max_retries=3):
    for attempt in range(max_retries):
        try:
            response = openai.ChatCompletion.create(
                model="gpt-4-turbo",
                messages=[{"role": "user", "content": "Hello"}]
            )
            return response
        except RateLimitError as e:
            if attempt == max_retries - 1:
                raise

            # 指数退避:2^attempt * 1秒
            wait_time = (2 ** attempt) * 1
            print(f"Rate limited. Retrying in {wait_time}s...")
            time.sleep(wait_time)

# 使用示例
try:
    result = call_api_with_retry()
    print(result)
except RateLimitError:
    print("Rate limit exceeded after all retries")

常见问题

速率限制是基于什么计算的?
速率限制基于您的订阅计划和 API Key 进行计算。每个 API Key 都有独立的速率限制配额。
多个 API Key 的限制如何叠加?
每个 API Key 都有独立的速率限制配额。使用多个 API Key 可以线性叠加请求配额,但账户级别的总配额仍受订阅计划限制。
速率限制何时重置?
速率限制使用滑动窗口算法。每分钟限制会在每个 60 秒窗口内重置,每日限制会在 UTC 时间 00:00 重置。
如何申请更高的速率限制?
您可以升级到专业版或企业版获得更高的速率限制。如需定制化配额,请联系我们的销售团队 sales@poeti.ai。

需要更高配额?

升级到专业版或企业版,获得更高的速率限制和优先支持