沉浸式翻译翻译到一半停住:429 与「每次请求最大字符数」
两种表现,根因常常是同一个:
- 整篇文章只有前几段变成中文,后面的段落原样留着,再点一次翻译还是停在同一个位置。
- 弹出报错:
429 Too Many Requests或者服务商返回的完整版本:
{"error":{"message":"Rate limit reached for requests","type":"requests","code":"rate_limit_exceeded"}}429 的含义是「你请求太快了」,不是 key 错、不是余额不足、不是模型名错。
- 沉浸式翻译 v1.x,AI 精翻 + 自定义 AI
- 免费模型(智谱 GLM-4.7-Flash、硅基流动小模型)最容易碰到
- 长文、整页翻译、一次翻多标签页时集中出现
为什么会撞上限
Section titled “为什么会撞上限”沉浸式翻译不是把整页文字塞进一次请求,而是按「每次请求最大字符数」切片,然后并发发出去。 一个正文 8000 字的页面,按 1000 字一片就是 8 个请求。
免费模型这边通常有两道闸:
| 限制 | 典型值 | 超了会怎样 |
|---|---|---|
| 每分钟请求数(RPM) | 免费档常见 3–20 | 429 |
| 并发数 | 免费档常见 1–2 | 429,或者部分分片直接失败 |
插件默认按「付费账号」的节奏发请求,免费档接不住,于是就出现了「翻一半停住」。
两个参数,在哪调
Section titled “两个参数,在哪调”翻译服务 → 展开你建的那个自定义 AI → 高级设置(有的版本叫「更多设置」):
| 参数 | 默认值(各版本略有差别) | 免费档建议 | 作用 |
|---|---|---|---|
| 每次请求最大字符数 | 1000 左右 | 500–800 | 切片大小。调小 = 请求变多但每个更快、更不容易超时 |
| 每分钟最大请求数 | 60 左右 | 10–15 | 主动限速,别撞服务商的 RPM |
| 请求超时 | 60 秒左右 | 120 秒 | 本地模型、慢模型要放宽 |
调参的顺序是:先把每分钟请求数压下来,再看要不要动字符数。 只压请求数不动字符数,长文会翻得慢但不会断;只动字符数不压请求数,照样 429。
三种情况的配法
Section titled “三种情况的配法”① 云端免费模型(智谱 / 硅基流动)
- 每次请求最大字符数:600
- 每分钟最大请求数:12
- 翻译一个长页面大概多花 10–20 秒,但能翻完。
② 本地 Ollama
- 每次请求最大字符数:500
- 每分钟最大请求数:20(本地没有服务商限流,卡的是算力)
- 请求超时:180 秒
- 更多细节见 接 Ollama 本地模型。
③ 付费中转 / 官方付费 key
- 保持默认即可,撞 429 说明套餐的并发很低,把每分钟请求数压到 30 再看。
排查:是 429 还是别的问题
Section titled “排查:是 429 还是别的问题”先分清两种「翻一半停」:
| 表现 | 说明 | 处理 |
|---|---|---|
| 弹出 429 或明确报错 | 限流 | 按上面调参 |
| 不报错,就是后面的段落不动 | 某个分片失败被静默跳过 | 刷新页面重译;仍不动就把字符数调小 |
如果是第二种,还有一个隐藏原因:页面是无限滚动的。沉浸式翻译只处理已经渲染出来的部分, 往下滚之后要重新触发翻译,不是它漏了。
- 免费档别开「翻译整个网站」「同时翻多个标签页」,一次一个页面;
- 长文档(PDF、整本书)不要用免费小模型,分片多、限流必然撞上;
- 把调好的参数记下来,换服务商时对着改,别每次重新试。
429 = 请求太快。压「每分钟最大请求数」到 10–15、字符数到 600,免费模型也能把长文翻完。