Runbase文档

Command Palette

Search for a command to run...

速率限制

API 请求限制以及如何处理它们。

Runbase 按 API 密钥应用速率限制,以确保公平使用和平台稳定性。

默认限制

范围限制
API 密钥(runs 端点)每 10 秒 20 个请求
Auth 端点每 60 秒 5 个请求
Session check每 60 秒 60 个请求

runs 端点的速率限制同时适用于 POST /api/v1/runsGET /api/v1/runs/:id,按每个 API 密钥计算。

速率限制响应

当你超过限制时,API 会返回 HTTP 429:

{
  "error": {
    "message": "Rate limit exceeded",
    "code": "RATE_LIMITED"
  }
}

处理速率限制

当你收到 429 响应时,实施指数退避:

import time
import requests
 
def create_run(api_key, model, input_data, max_retries=3):
    url = "https://runbase.net/api/v1/runs"
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    body = {"model": model, "input": input_data}
 
    for attempt in range(max_retries):
        response = requests.post(url, json=body, headers=headers)
        if response.status_code == 429:
            wait = 2 ** attempt
            time.sleep(wait)
            continue
        return response.json()
 
    raise Exception("Rate limit exceeded after retries")

提示

  • 为不同的服务或 worker 使用单独的密钥,以避免共享同一速率限制
  • 在检查运行状态时以合理的间隔轮询 —— 对于大多数模型,每 1–2 秒一次就足够了
  • 批量处理工作,而不是同时发送许多请求
  • 不要在 429 后立即重试 —— 重试前一定要等待

需要更高的限制?

如果你的使用场景需要更高的速率限制,请联系 support@runbase.net