Skip to content

渠道路由策略 ​

当用户调用 POST /v1/chat/completions 时,系统需要在多条「能调这个模型」的渠道里选一条。 这一页解释它按什么规则选、为什么有些渠道永远不会被选中、怎么调试。

选路四步走 ​

系统按以下顺序决定用哪条渠道:

  1. 过滤:只保留「启用中 + 模型在白名单 + 用户组在白名单」的渠道
  2. 健康检查:剔除自动禁用 / 冷却中 / 并发已满 / RPM 已满的渠道
  3. 打分:根据权重 + 优先级 + 优先级 / fallback 偏好综合打分
  4. 决定:选最高分;若分数相同则随机挑

过滤规则的含义 ​

过滤条件在哪里设置不通过会发生什么
状态必须为「启用」渠道详情页开关该渠道直接被跳过
用户请求的模型在 models 白名单渠道详情页不勾的模型永远不会被路由到该渠道
用户的用户组在 group 白名单渠道详情页该渠道对该用户隐藏
渠道未处于「自动禁用 / 冷却中」自动状态系统层面自动跳过

权重 / 优先级 / fallback ​

这三者共同决定打分:

  • 权重 weight:越大越容易被选中。建议便宜快稳的渠道设高
  • 优先级 priority:等级越大越优先(如 10 优先于 5)
  • 是否纯 fallback is_fallback:勾上后该渠道只在所有非 fallback 渠道都失败时才被选中

调权重 / 优先级即可在不打乱其他渠道的前提下微调路由偏好。

健康检查(自动状态) ​

系统会自动维护每条渠道的健康状态:

  • 并发:当前并发数 >= max_concurrency 时拒绝新请求
  • RPM:最近 60s 请求数 >= rpm 时拒绝
  • 冷却:某条渠道连续失败 N 次后进入冷却,几分钟后再尝试
  • 自动禁用:连续严重失败后整条渠道被自动禁用

这些都不需要你手动配。如果你发现某渠道被频繁自动禁用,去后台「渠道」详情看 日志 的 error 字段。

调试:为什么这条渠道没被选中? ​

  1. 检查过滤:在 渠道测试 用同一个模型 + 用户组测试,能通就说明过滤 OK
  2. 检查权重:把候选渠道的权重都列出来,高的应该被选中
  3. 看自动状态:渠道详情页有「自动禁用 / 冷却 / 并发满」的红字
  4. 看路由日志:调用日志里 channel 字段就是最终命中的渠道 ID

高级:模型名映射 ​

有的中转站不支持原生的模型名(比如 gpt-4o → 中转站叫 gpt-4o-2024)。在渠道详情页填 model_mapping:

json
{ "gpt-4o": "gpt-4o-2024" }

调用方发 gpt-4o 时,系统会转发为 gpt-4o-2024 给该渠道。

相关文档 ​