[增强/错误] LLM 客户端不会重试瞬时 503 (服务不可用) / 429 (速率限制) 错误,导致过早回退到原始差异通知
作者: apeabody创建于 2026年9月5日更新于 2026年9月6日
标签triage
有什么问题吗?
当使用LLM特性(如AI 更改意向或AI 更改摘要)与提供商如Google Gemini或OpenAI时,瞬时提供商出错(如HTTP 503 服务不可用:模型超载'或HTTP 429RateLimitError')导致"更改检测仪/ZLLM/Client.py:完成()"的调用在尝试1时立即失效.
影响
- AI 改变意图(`评价-改变 ' ): 未处理的例外触发了安全故障开通逻辑("例外:返回{'重要":True,"摘要":"'"),所以故意过滤器(例如"只有通知价格低于$X")被绕过,并意外地发出通知.
- **AI 变化摘要(
摘要-变化')**: 由于摘要调用中断,摘要是空白的,通知符号替换(用AI摘要取代` diff')又回到了原始的diff。
根原因 :
在 " 变化检测/LLM/客户.py " 中,可重试的Tuple目前仅限于:
可重试=(litellm. 超时, litellm. APIConnection Error)Litellm'等提供商一级的瞬态状态代码。 服务不可用错误 ' (HTTP 503),litellm. 缩写:LetLimitError(HTTP 429)和 " Litellm " 。 内部服务员Error(HTTP 500)不能作为可重试文件被抓住。 此外,目前在没有回放睡眠的情况下执行的重试,意味着重试尝试会击中相同的微秒速率限制窗口.
建议的解决办法
- 扩大 " 可复审 " 范围,以包括 " Litellm " 。 服务不可用错误 " 、 " Litellm.RateLimit Error " 和 " Litellm " 。 内务员Error。
- 在重复试验之间增加指数回放睡眠(`时间.sleep (min (2 ** (atention - 1), 8)'),因此服务器侧超载和限速暴有时间恢复.
内容来源: dgtlmoon/changedetection.io