Skip to content

功能请求:为 channel affinity 规则添加 fallback channel 支持 #4545

@fujijin

Description

@fujijin

提交前必读(请勿删除本节)

您当前的 newapi 版本

请填写,例如:v1.0.0

v0.13.1(自定义构建 ruitu-securewrite-20250425T034800Z)

提交确认

  • 我已确认目前没有类似 issue
  • 我已完整查看过文档 https://docs.newapi.ai/ 和项目 README,已确定现有版本无法满足需求
  • 我未删除此模板中的任何引导内容或小节标题,并会按要求完整填写
  • 我理解项目维护者精力有限,不遵循模板要求的 issue 可能会被无视或直接关闭

功能描述

当 channel affinity 规则的 skip_retry_on_failure=true 时,如果被强制指定的 channel(如 channel_id=7)因自动测试失败而被禁用(auto_ban),系统会直接返回 403 错误:

403 Forbidden: "The channel selected by channel affinity has been disabled, and retry was stopped by rule."

即使同一个上游(如 api.vivajane.pro)有其他可用 channel(如 4、5、6),也无法切换。

建议解决方案:为 channel affinity 规则添加 fallback_channel_ids 字段。当主 channel 不可用时,按顺序尝试备用 channel。

示例:

{
  "name": "codex cli trace",
  "skip_retry_on_failure": true,
  "fallback_channel_ids": [4, 5, 6]
}

应用场景

用户使用多个 channel 指向同一个上游的不同 API key(如 api.vivajane.pro 的多个 key),通过 channel affinity 规则实现负载均衡和一致性路由。但当某个 channel 因自动测试误判被禁用时,整个服务中断。添加 fallback 可以提高可用性。


关联 issue(格式不规范被关闭):#4544

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions