59API

← Back to all guides

LLM 调用不再盲目重试:超时、指数退避与成本控制快速上手

Guides · ZH · 2026-10-28

先定预算,再写重试循环

LLM 调用失败后立即再发一次,看似简单,却可能放大限流、延迟和费用。可靠的起点是:一个总截止时间、有限重试次数、带随机抖动的指数退避。以下配置适合交互式文本应用作为起点,长文本生成应按实际耗时调整。

第一步:拆开超时,避免请求无限等待

每次重试前计算剩余预算,并将本次超时限制在剩余时间内。若剩余时间已不足以完成一次有意义的请求,就返回明确错误,而不是继续排队。

第二步:只重试可能恢复的错误

第三步:指数退避必须加入随机抖动

设置最多重试 2 次,即总共最多 3 次请求。第 n 次重试从 1 开始,等待时间取 0 到 min(8 秒,0.5 秒 × 2 的 n−1 次方) 之间的随机值。这种全抖动策略能避免大量客户端同时恢复请求。

遇到 Retry-After 时,按响应指示等待;它可能是秒数,也可能是 HTTP 日期。不要比服务端要求的时间更早重试。如果等待后无法满足总截止时间,直接结束当前任务,或转入后台队列。

还要检查 SDK 的内置重试。若由业务层统一控制,使用支持该选项的 OpenAI SDK 时可设置 max_retries=0,避免内外两层重试叠加。

第四步:保护流式输出与工具副作用

流式响应已输出部分内容后,不要无声重发并拼接结果,否则可能出现重复段落。应提示生成中断,或由产品层设计明确的续写流程。工具执行、下单、写数据库等操作必须使用业务幂等键;只有服务端明确支持时,才能依赖接口幂等机制。

第五步:在 59API 上落地并观察成本

59API 的 API 基础地址是 https://api.59api.com,兼容 OpenAI SDK,并支持 Claude Code、Codex 和 Gemini CLI。具体端点与模型标识按接入文档配置,可用 DeepSeek V4 Flash 或 Claude Sonnet 5.5 分别测试延迟与质量,不要在重试时静默切换模型。

59API 主打低价、按量付费,提供原生官方品质模型、不降级,也有邀请返利,适合控制开发与试运行成本。不过,低单价不等于重试免费:记录状态码、尝试次数、总耗时、请求标识及用量,持续观察成功率和每次成功调用的成本。

可以注册 59API,用小额预算先跑一组正常、限流和超时测试;确认重试确实提高成功率,而不是仅仅增加请求量,再逐步放大流量。

Pricing · Docs

Ready to get started?

Connect Claude & GPT in minutes at the lowest prices — full-power, never downgraded. Sign up to get your API key.

Sign up free