1.8 KiB
1.8 KiB
模型分类优先级经验
更新日期:2026-05-19
背景
模型列表接口新增了 category 字段,但它不是必填项。同时,很多图片模型也会暴露 openai-video、video-generation 之类的异步或兼容端点。
如果仍然只按 supported_endpoint_types 或 id 猜类型,就很容易把图片模型误判成视频模型。
问题表现
gpt-4o-image-async、gpt-image-*这类图片模型,因为带了openai-video,被错分到视频。- 旧的静态模型配置命中后,运行时接口返回的
category没有机会修正类型。 category出现生图、文本、研究这类业务值时,如果不做归一化,分类会漂。
修复思路
category存在时优先使用。- 归一化常见值:
生图、图片、图像、绘图、image->image视频、video->video文本、研究、chat、text->text音频、音乐、voice、audio->audio
category缺失时,再回退到id、endpoint hint、vendor 的旧推断逻辑。- 只要
id命中image,就应先保住图片归类,不要被视频端点抢走。 - 静态配置如果被接口
category明确覆盖,要同步清理不匹配的默认参数,避免图片模型挂着视频默认值。
经验规则
- 有
category,先信category。 - 有
image,一定按图片模型处理。 - 图片模型同时支持视频端点,不等于视频模型。
category是分类信号,不是装饰字段;接口给了就该进判定链路。- 这种修复优先改判定顺序,不要靠新增更多特例堆规则。
验证
node_modules/.bin/vitest run packages/drawnix/src/utils/__tests__/runtime-model-discovery.test.tsgit diff --check- 用真实模型列表抽样确认:
生图 + openai-video仍归图片。