速率限制
Triggerfish 包含一个滑动窗口速率限制器,防止达到 LLM 提供商 API 限制。它透明地包装任何提供商——智能体循环不需要知道速率限制。当容量耗尽时,调用自动延迟直到窗口滑动足够释放容量。
工作原理
速率限制器使用滑动窗口(默认 60 秒)跟踪两个指标:
- 每分钟令牌数(TPM) —— 窗口内消耗的总令牌数(提示 + 补全)
- 每分钟请求数(RPM) —— 窗口内的总 API 调用数
OpenAI 层级限制
速率限制器内置了 OpenAI 已发布层级限制的默认值:
| 层级 | GPT-4o TPM | GPT-4o RPM | o1 TPM | o1 RPM |
|---|---|---|---|---|
| Free | 30,000 | 500 | 30,000 | 500 |
| Tier 1 | 30,000 | 500 | 30,000 | 500 |
| Tier 2 | 450,000 | 5,000 | 100,000 | 1,000 |
| Tier 3 | 800,000 | 5,000 | 100,000 | 1,000 |
| Tier 4 | 2,000,000 | 10,000 | 200,000 | 10,000 |
| Tier 5 | 30,000,000 | 10,000 | 200,000 | 10,000 |
配置
高级用户可以通过 triggerfish.yaml 中的提供商配置自定义限制:
yaml
models:
providers:
openai:
model: gpt-4o
rate_limit:
tpm: 450000 # 每分钟令牌数
rpm: 5000 # 每分钟请求数
window_ms: 60000 # 窗口大小(默认 60 秒)速率限制保护你免受 429 错误和意外账单。它与故障转移链协同工作——如果达到速率限制且限制器无法等待(超时),故障转移启动以尝试下一个提供商。 :::
相关
- LLM 提供商和故障转移 —— 故障转移链与速率限制的集成
- 配置 —— 完整的
triggerfish.yaml模式
