Skip to content

速率限制

Triggerfish 包含一个滑动窗口速率限制器,防止达到 LLM 提供商 API 限制。它透明地包装任何提供商——智能体循环不需要知道速率限制。当容量耗尽时,调用自动延迟直到窗口滑动足够释放容量。

工作原理

速率限制器使用滑动窗口(默认 60 秒)跟踪两个指标:

  • 每分钟令牌数(TPM) —— 窗口内消耗的总令牌数(提示 + 补全)
  • 每分钟请求数(RPM) —— 窗口内的总 API 调用数
速率限制器流程:智能体循环 → 速率限制器 → 容量检查 → 转发到提供商或等待

OpenAI 层级限制

速率限制器内置了 OpenAI 已发布层级限制的默认值:

层级GPT-4o TPMGPT-4o RPMo1 TPMo1 RPM
Free30,00050030,000500
Tier 130,00050030,000500
Tier 2450,0005,000100,0001,000
Tier 3800,0005,000100,0001,000
Tier 42,000,00010,000200,00010,000
Tier 530,000,00010,000200,00010,000

配置

高级用户可以通过 triggerfish.yaml 中的提供商配置自定义限制:

yaml
models:
  providers:
    openai:
      model: gpt-4o
      rate_limit:
        tpm: 450000 # 每分钟令牌数
        rpm: 5000 # 每分钟请求数
        window_ms: 60000 # 窗口大小(默认 60 秒)

速率限制保护你免受 429 错误和意外账单。它与故障转移链协同工作——如果达到速率限制且限制器无法等待(超时),故障转移启动以尝试下一个提供商。 :::

相关