one-api 请求增加重试次数的更多自定义设置

ghhkc1vu  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(25)

例行检查

  • 我已确认目前没有类似问题
  • 我已确认我已升级到最新版本
  • 我已完整查看过项目 README,已确定现有版本无法满足需求
  • 我理解并愿意跟进此问题,协助测试和提供反馈
  • 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的问题可能会被无视或直接关闭

功能描述
现在的重试机制就是很简单的重试几次而已,那就存在多个问题,比如:

  1. 并不是所有渠道类型都需要不断重试。对我而言,只有 OpenAI 的有必要重试,而国内文心一言等就没必要。
  2. 第一次重试、第二次重试都是有可能调用到第一次同样的渠道的。查看了作者之前的说明,每次重试还是随机调用某个渠道。因此在重试次数少的情况下,就会出现这种问题。那为了解决,我现在是把重试次数设置成3,三个渠道的情况下,暂时还没遇到一直调用同一个。那这重试次数多了,对于那些不需要反复重试的渠道,就会造成影响。
  3. 像 Gemini-Pro 返回 500、Qwen-Max(阿里的通义千问)返回 Input data may contain inappropriate content. 都是代表内容违反了政策,包含不该有的内容。那这种情况下,不断重试,其实没什么意义,每次都还是一样的返回,反而会增加给用户的响应时间。尤其 Gemini-Pro,发现重试3次,大概率累积响应时长要30s以上,非常坑。

解决上面的问题我感觉有两种方案:

  1. 简单的处理,可以单独设置某种渠道类型的重试次数,例如 OpenAI 重试3次,百度的不重试等。
  2. 更加自定义,可以用户填写当遇到什么样的错误的时候,就不重试。就像上面所说,那种内容违反政策的报错,其实就没必要重试,那我们可以填写错误响应码,或者网页返回内容,让当遇到这种报错的时候就不反复重试了。当然,上面所说的情况其实主要原因就是,某些渠道,不断重试的情况下,累积起来的时间可能很长。

应用场景

如上所述

ivqmmu1c

ivqmmu1c1#

是的,现有的重试确实太无脑,应该区分错误类型,该问题肯定会处理,精力有限需要时间感谢理解

相关问题