陪读蛙

请求控制与批量翻译

理解 Token Bucket、burst request、LLM 批处理、重试回退,以及低配额 API 的保守配置。

网页翻译的请求设置位于 设置 → 翻译 → 请求控制。视频字幕在 设置 → 视频字幕 中有一套完全独立的速率和批处理设置。

默认值

设置默认值适用范围
每秒平均请求数8当前翻译流程中的所有 provider 请求
最大突发请求数60当前翻译流程中的所有 provider 请求
每批最大字符数1000仅 LLM provider
每批最大段落数4仅 LLM provider

Token Bucket 如何工作

Read Frog 使用持续补充的 Token Bucket:

  1. 启动时桶中已有“最大突发请求数”个 token。
  2. 每启动一个排队请求消耗一个 token。
  3. 按“每秒平均请求数”持续补充 token,直到容量上限。
  4. 只要有 token,到期的排队请求就可以启动。

因此,burst 容量不是并发上限。默认容量 60 表示一个满桶可以立即放行最多 60 个排队请求;它并不保证网络中最多只有 60 个请求同时进行。

支持小数速率:0.25 表示每 4 秒补充一个 token,0.5 表示每 2 秒一个。

不要把 provider 的“每分钟请求数”直接填进每秒字段。应先除以 60,并确认 provider 是否还有短时 burst 限制。

如何选择速率与容量

API 配额示例保守起始配置
每分钟 60 次,未说明 burst速率 1,容量 1
每分钟 15 次速率 0.25,容量 1
每 10 秒 1 次速率 0.1,容量 1
高吞吐本地模型8 / 60 开始,再观察延迟和内存

遇到 HTTP 429 或配额错误时,先把容量设为 1,再把速率降低到持续配额。LLM 批处理能减少请求总数,但不会让过大的初始 burst 变安全。

LLM 批处理何时触发

批量翻译只用于被识别为 LLM 的 provider。普通翻译服务仍按自己的正常请求方式运行。

来源语言、目标语言、provider 和上下文相同的项目可以进入同一批。满足任一条件就会发送:

  • 再加入一项会超过字符上限;
  • 段落/字幕段数量达到上限;
  • 当前字符数达到上限;
  • 大约 100 ms 的短暂收集窗口结束。

默认 1000 字符、4 段兼顾请求节省与结构化输出稳定性。批次越大,请求开销越低,但错误会影响更多段落,也更容易超过模型或网关限制。

重试、结构化结果与单条回退

LLM 批次必须为每个输入返回一个译文。如果返回数量不正确,Read Frog 最多重试三次,然后把该批项目回退为逐条翻译。普通网络错误由请求队列的重试策略处理,与“返回条数不匹配”不是同一种失败。

进行中的重复内容会去重,成功结果也可从缓存复用。统计页面会比较原始段落请求数和实际批量请求数,便于确认批处理是否有效。

统计页面中的批量请求节省数据

常用配置

严格免费额度

  • 速率:provider 文档中的持续速率,常见为 0.11
  • burst 容量:1
  • 每批字符:6001000
  • 每批段落:24

结构化输出不稳定的模型

保持速率合规,把批次降低到 500800 字符、2 段。请求会增加,但一一对应的输出通常更可靠。

快速本地模型

先使用默认值,再逐步增加批次,同时观察响应时间、内存和回退次数。没有远程配额并不代表大 burst 不会压垮本地服务。

网页与字幕不共享 bucket。字幕更重视实时性,网页翻译通常可以使用更保守的速率。

On this page