背景
当前队列模式(QueueMode)仅支持 PULL/ROUTE 两类,不覆盖批处理(BATCH)场景。同时,路由系统缺乏对外暴露的通道列表查询接口,外部调用方无法在请求前了解可用通道分布,影响路由透明度与排查效率。
诉求
- 扩展 QueueMode 枚举,增加 SINGLE(原 PULL)、BATCH、SINGLE_ROUTE、BATCH_ROUTE 模式,通过位运算支持灵活的模式组合,并限制 SINGLE 与 BATCH 不可共存
- 新增
POST /v1/route/list 接口,允许调用方传入 endpoint/model/apikey/queueMode,查询当前可用通道列表(按优先级排序)
- SDK(OpenapiClient)同步新增
listAvailableChannels 方法,封装对新接口的调用
预期影响
- 批处理任务调度场景可通过 BATCH 模式路由到支持批处理的通道,不再局限于原有 PULL 模式
- 外部调度系统可通过路由查询接口提前感知可用通道,提升路由决策透明度和可调试性
- SDK 用户可直接调用方法获取通道列表,无需自行构造 HTTP 请求
证据
ChannelRouter.route() 重构为先调用 listAvailableChannels() 再取首个结果,路由行为与原逻辑等价
- QueueMode 位掩码设计:
SINGLE=1, ROUTE=2, BATCH=4,校验层确保 SINGLE 与 BATCH 互斥
ChannelService.listActives() 和 ModelService.fetchTerminalModelName() 缓存注解暂时注释,便于实时反映变更
ChannelService.listAllWorkerChannels() 查询条件更新为新 QueueMode 枚举值
相关链接
无
背景
当前队列模式(QueueMode)仅支持 PULL/ROUTE 两类,不覆盖批处理(BATCH)场景。同时,路由系统缺乏对外暴露的通道列表查询接口,外部调用方无法在请求前了解可用通道分布,影响路由透明度与排查效率。
诉求
POST /v1/route/list接口,允许调用方传入 endpoint/model/apikey/queueMode,查询当前可用通道列表(按优先级排序)listAvailableChannels方法,封装对新接口的调用预期影响
证据
ChannelRouter.route()重构为先调用listAvailableChannels()再取首个结果,路由行为与原逻辑等价SINGLE=1, ROUTE=2, BATCH=4,校验层确保 SINGLE 与 BATCH 互斥ChannelService.listActives()和ModelService.fetchTerminalModelName()缓存注解暂时注释,便于实时反映变更ChannelService.listAllWorkerChannels()查询条件更新为新 QueueMode 枚举值相关链接
无