需求摘要
避免账号池里的free账号不支持sol模型从而阻塞账号池轮换
影响模块
Service
当前问题
背景
当前在 hybrid_rotation 模式下,如果模型同时配置了本地账号池和聚合 API,例如:
account_pool/default
aggregate_api/<aggregate_api_id>
请求会优先进入本地账号池。
如果账号池里存在 ChatGPT Free 账号,而该账号没有 gpt-5.6-sol 权限,上游会返回:
{"detail":"The 'gpt-5.6-sol' model is not supported when using Codex with a ChatGPT account."}
当前请求会直接返回这个 400 错误。
当前行为
当本地账号返回上述 400 后,网关会把该错误归类为 Other。
Other 错误当前不会触发 failover,因此:
- 不会继续尝试账号池里的其他账号
- 不会进入聚合 API 兜底
- 请求直接以 400 结束
这会导致一个不支持 sol 的 ChatGPT Free 账号阻断整个 hybrid 路由。
期望行为
希望确认:这类“当前 ChatGPT 账号不支持该模型”的 400,是否应该在 hybrid_rotation 下被视为可 failover 的账号能力不匹配错误。
如果允许 failover,期望行为是:
- 当前账号返回 unsupported-model 400
- 网关跳过当前账号
- 继续尝试账号池里的下一个候选账号
- 如果本地账号池耗尽,则进入聚合 API 兜底
- 最终请求可以由支持该模型的本地账号或聚合 API 完成
复现方式
- 配置一个 API Key 使用
hybrid_rotation
- 模型配置同时包含本地账号池和聚合 API 路由
- 本地账号池中包含多个 ChatGPT 账号:
- 一个账号支持
gpt-5.6-sol
- 其他 ChatGPT Free 账号不支持
gpt-5.6-sol
- 请求模型
gpt-5.6-sol
- 当轮转命中不支持该模型的 Free 账号时,请求直接返回 400
实际结果
请求返回:
{"detail":"The 'gpt-5.6-sol' model is not supported when using Codex with a ChatGPT account."}
后续账号和聚合 API 兜底没有执行。
影响
在混合轮转模式下,只要本地账号池中存在不支持目标模型的账号,请求就可能被该账号阻断。
这会影响以下场景:
- 一个账号池混有 Free / Plus / Pro / Team 等不同能力账号
- 部分账号支持 sol 模型,部分账号不支持
- 用户配置了聚合 API 作为兜底,但 400 阶段提前结束
- balanced / ordered 轮转命中不支持账号时,请求稳定失败
建议方案
可以考虑将特定 unsupported-model 400 识别为可 failover 错误,例如匹配:
model is not supported when using Codex with a ChatGPT account
触发条件建议限制在:
- 当前响应来自本地 ChatGPT 账号
- 当前还有后续账号候选,或当前模型存在可用聚合 API 路由
- 当前错误文本明确表示账号不支持目标模型
处理方式:
- 当前请求跳过该账号
- 继续执行候选账号轮转
- 候选账号耗尽后,按已有逻辑进入聚合 API fallback
需要维护者确认的问题
- 这种错误必须阻塞账号池轮换吗
- 是否应该视作可跳过的问题从而让继续轮换避免阻塞
期望方案
- Hybrid 模式下,本地账号返回上述 unsupported-model 400 后,请求会继续尝试后续候选账号
- 如果后续账号支持该模型,请求成功
- 如果本地账号池全部不支持该模型,且模型配置了聚合 API 路由,请求进入聚合 API 兜底
- 普通请求参数错误仍保持当前直接返回行为
- 行为有回归测试覆盖
备选方案 / 补充上下文
No response
提交检查
需求摘要
避免账号池里的free账号不支持sol模型从而阻塞账号池轮换
影响模块
Service
当前问题
背景
当前在
hybrid_rotation模式下,如果模型同时配置了本地账号池和聚合 API,例如:account_pool/defaultaggregate_api/<aggregate_api_id>请求会优先进入本地账号池。
如果账号池里存在 ChatGPT Free 账号,而该账号没有
gpt-5.6-sol权限,上游会返回:{"detail":"The 'gpt-5.6-sol' model is not supported when using Codex with a ChatGPT account."}当前请求会直接返回这个 400 错误。
当前行为
当本地账号返回上述 400 后,网关会把该错误归类为
Other。Other错误当前不会触发 failover,因此:这会导致一个不支持 sol 的 ChatGPT Free 账号阻断整个 hybrid 路由。
期望行为
希望确认:这类“当前 ChatGPT 账号不支持该模型”的 400,是否应该在
hybrid_rotation下被视为可 failover 的账号能力不匹配错误。如果允许 failover,期望行为是:
复现方式
hybrid_rotationgpt-5.6-solgpt-5.6-solgpt-5.6-sol实际结果
请求返回:
{"detail":"The 'gpt-5.6-sol' model is not supported when using Codex with a ChatGPT account."}后续账号和聚合 API 兜底没有执行。
影响
在混合轮转模式下,只要本地账号池中存在不支持目标模型的账号,请求就可能被该账号阻断。
这会影响以下场景:
建议方案
可以考虑将特定 unsupported-model 400 识别为可 failover 错误,例如匹配:
触发条件建议限制在:
处理方式:
需要维护者确认的问题
期望方案
备选方案 / 补充上下文
No response
提交检查