单个服务商账户有它自己的速率上限,需要大模型 API 高并发的智能体集群或批处理任务很快就会撞上这个天花板。Lovely Router 用一组渠道为每个模型提供服务,按这些渠道的总容量接纳你的流量;所有渠道都繁忙时,请求会短暂排队;失败的请求会在另一个渠道上重试。你保留现有的 SDK,只需更改 base URL;只有当问题在这一切之后依然存在时,你才会收到可重试的 429 或 502。
工作原理
请求分散到容量池中
每个渠道组(
claude-value、gpt-value、gemini-value)都汇聚了多个渠道的容量,新对话会分散到这些渠道上。错误更多、或响应明显慢于平时的渠道,在恢复之前分到的份额会更少;持续失败的渠道会被暂时移出轮换。突发流量排队等待,而不是直接失败
某个渠道已满时,网关会尝试为该模型提供服务的其他渠道。全部已满时,请求会进入预计最先空出来的那个渠道的队列,最多等待 10 秒。被接纳的请求会带有
x-lovely-queued-ms,标明它等待的时长。失败由网关替你重试
如果请求所在的渠道超时、返回
429或5xx,或在流的第一个 token 之前失败,请求会在另一个渠道上重试,最多尝试三次。流会一直保留到第一个 token 出现(最多 15 秒),因此早期失败永远不会以中断的流的形式到达你这里。
你的客户端会收到什么
| 状态码 | 何时出现 | 如何处理 |
|---|---|---|
429 | 触及密钥的每分钟请求数或并发限制,且最多等待 2 秒后仍无空位。带有 retry-after。 | 等待 retry-after 秒,或提高密钥的限制。 |
429 | 该模型的全部容量连续 10 秒处于繁忙状态。带有 retry-after。 | 等待 retry-after 秒后重试。 |
429 | 尝试过的每个渠道都报告了速率限制。 | 使用退避策略重试。 |
502 | 尝试过的每个渠道都失败了。 | 使用退避策略重试。 |
402 | 余额小于或等于零,或密钥已达到消费上限。 | 充值或提高上限。不要重试。 |
400、404、413、422 | 请求本身无效。永远不会换到别处重试。 | 修正请求。 |
被 429 拒绝的请求不收费。错误响应体遵循你所用的 API 格式。
其余情况在客户端中重试
429 或 502 意味着问题已经持续了好几次尝试。请使用指数退避加随机抖动再重试几次,并遵循 retry-after。Anthropic 和 OpenAI 的 SDK 默认重试两次;批处理任务请调高这个次数:
# --retry 会处理 429 和 5xx,并遵循 retry-after
curl --retry 5 --retry-max-time 120 https://lovelyrouter.com/v1/chat/completions \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"model": "gpt-6.1-sol", "messages": [{"role": "user", "content": "Hi"}]}'对于流,只在错误出现在任何内容之前时才重试:一旦 token 开始输出,失败就会以流中的错误事件呈现。
为每个密钥设置的限制
每个密钥都可以设置 每分钟请求数 限制(滚动 60 秒窗口)和 最大并发请求数 限制(打开中的流在结束前都计入)。两者默认关闭。为不同工作负载使用各自带限制的独立密钥,可以避免批处理任务挤占生产流量。密钥还可以设置消费上限、模型允许列表和过期日期;参阅 API 密钥。
高负载下提示缓存依然有效
每个对话都固定在持有其提示缓存的渠道上,而且每个容量池都会为已固定的轮次保留一部分容量,因此即使在高峰期,进行中的会话也能继续享受缓存价格。当固定的渠道已满时,这一轮会短暂等待它(短提示词约一秒,长提示词最多十秒),之后才会换到别的渠道并写入新的缓存。参阅提示缓存。
选择渠道组,或交给自动选择
密钥默认使用 自动,它会把每个请求发往该模型当前最优的可用渠道组;重试可能使用任何提供该模型的渠道组。把密钥绑定到一个渠道组,或发送 x-lovely-group 请求头,每次重试都会留在该组内,价格就不会在你不知情时发生变化。响应会注明为其提供服务的渠道组和渠道。参阅渠道组。
高并发应用的常见模式
把 SDK 的重试次数调到五次,并给任务单独一个带并发限制的密钥,让它永远不会挤占生产流量。
为响应开始预留至少 30 秒:请求可能需要等待容量,而流从第一个 token 才开始。
为每个对话发送带固定 ID 的 x-session-id,让各轮请求持续命中缓存。
费用说明
每次调用按 token 计费(输入、输出、缓存读取和缓存写入),价格为模型标价乘以提供服务的渠道组的倍率。目前所有在线渠道组的倍率都是 ×1.00,你支付的就是标价。排队中的请求在实际运行之前不收费,被 429 拒绝或以错误告终的请求不产生任何费用。你取消的流按已生成的内容计费。所有费用都从预付费余额中扣除,没有订阅;参阅价格页。
| 模型 | 上下文 | 输入 | 输出 | 缓存读取 |
|---|---|---|---|---|
| Claude Fable 5.1 claude-fable-5.1 | 1M | $10.00 | $50.00 | $0.25 |
| Claude Opus 5.5 claude-opus-5.5 | 1M | $4.00 | $20.00 | $0.20 |
| Claude Sonnet 5.5 claude-sonnet-5.5 | 1M | $2.00 | $10.00 | $0.10 |
| Claude Haiku 5.5 claude-haiku-5.5 | 1M | $0.10 | $0.50 | $0.01 |
| Claude Fable 5 claude-fable-5 | 1M | $10.00 | $50.00 | $1.00 |
| Claude Opus 5 claude-opus-5 | 1M | $5.00 | $25.00 | $0.50 |
| Claude Sonnet 5 claude-sonnet-5 | 1M | $2.00 | $10.00 | $0.20 |
| Claude Opus 4.8 claude-opus-4.8 | 1M | $5.00 | $25.00 | $0.50 |
| Claude Opus 4.7 claude-opus-4.7 | 1M | $5.00 | $25.00 | $0.50 |
| Claude Opus 4.6 claude-opus-4.6 | 1M | $5.00 | $25.00 | $0.50 |
| Claude Sonnet 4.6 claude-sonnet-4.6 | 1M | $3.00 | $15.00 | $0.30 |
| Claude Opus 4.5 claude-opus-4.5 | 200K | $5.00 | $25.00 | $0.50 |
| Claude Sonnet 4.5 claude-sonnet-4.5 | 1M | $3.00 | $15.00 | $0.30 |
| Claude Haiku 4.5 claude-haiku-4.5 | 200K | $1.00 | $5.00 | $0.10 |
每 100 万 token 的美元价格,实时来自目录。
常见问题
Lovely Router 能解除 Claude API 的速率限制吗?+
它解除的是单个账户的上限:每个模型都由多个渠道汇聚起来的容量提供服务,你的请求按这些渠道的总容量接纳。但容量仍然有限,所以当提供某个模型的所有渠道连续 10 秒都处于满载时,请求会以 429 失败,并带有 retry-after 响应头。
请求过程中渠道失败会怎样?+
这就是 LLM API 的自动故障切换:网关会在同一渠道组内的另一个渠道上重试该请求,最多尝试三次。对于流,这只发生在第一个 token 之前;在那之后,失败会以流中的错误事件呈现。
排队或被限流的请求会收费吗?+
不会。排队中的请求在实际运行之前不收费,被 429 拒绝的请求完全不收费。以错误告终的请求同样不收费。
可以为每个 API 密钥设置自己的速率限制吗?+
可以。每个密钥都可以设置每分钟请求数限制和最大并发请求数限制,两者默认关闭。超出限制的请求最多等待 2 秒以获得空位,之后以 429 失败,并带有 retry-after 响应头。
故障转移会改变我支付的价格吗?+
如果你的密钥绑定了渠道组,或你发送了 x-lovely-group 请求头,就不会:每次重试都留在该组内。使用自动且不带该请求头时,重试可能使用另一个渠道组,响应头始终会报告实际作答的那个组。
在大规模运行编程智能体?参阅 AI 编程智能体和 Claude API 页面。限流文档中有完整的重试指南。