用途:当单个 OpenRouter API Key 的每分钟请求数或 token 数达到上限时,通过多 Key 轮询与提供商路由把请求分散出去,从而提升整体吞吐量。
主要能力:多 Key 轮询(KeyPool)在多个 Key 间循环,连续 3 次错误后触发熔断,冷却 60 秒后自动恢复;balanced_completion() 遇到 RateLimitError 时标记该 Key 并换用下一个健康 Key;parallel_completions() 用 asyncio.Semaphore(max_concurrent 建议 3-5)限制单 Key 并发;提供商级负载均衡通过 extra_body 传入 provider.order 与 allow_fallbacks,让同一模型分散到 Anthropic、AWS Bedrock、GCP Vertex 等;check_rate_limits() 调用 GET /api/v1/auth/key 查看每个 Key 的配额与用量。
使用方式:需准备两个以上 Key,导出为 OPENROUTER_KEY_1、OPENROUTER_KEY_2、OPENROUTER_KEY_3;单 Key 并发模式需 OPENROUTER_API_KEY。环境为 Python 3.8+,安装 openai 与 requests(pip install openai requests)。客户端 base_url 设为 https://openrouter.ai/api/v1,并可在 default_headers 中设置 HTTP-Referer 与 X-Title。
适用场景:需要超出单 Key 速率限制的高吞吐批量任务、并发处理多个提示词、以及希望在同一模型上跨提供商获得冗余与低延迟推理的场景。
限制与注意:每个 Key 需有足够额度;所有 Key 同时 429 时需增加 Key 或实现请求排队;轮询未考虑在途请求可能导致负载不均,可改用基于当前负载的加权分配;瞬时错误可能误判 Key 不健康,建议用滑动窗口(60 秒内 3 次错误)再标记;并发过高时需降低信号量并加入退避。企业场景可按服务或团队拆分 Key 并设置独立额度以隔离成本。