同名 provider 冲突会让模型路由漂移
触发链
- 导入外部会话(原生 Codex → 平台)时只导入了消息,
provider_id留空,模型字段还是原生的裸名。 - 从该会话派生新对话时,平台要把裸名解析回具体供应商。
- 此时若自定义供应商和内置供应商同名(都叫
chatgpt),解析会命中内置的那个。 - 模型名被规范化成带前缀的完整 ID,请求发给内置后端而不是用户自己的中转 → 报错。
判据:用报错措辞判断请求实际落在谁那里
这是本条最有价值的可迁移动作 —— 同一类 404,措辞能区分后端:
| 措辞 | 说明请求发到了 |
|---|---|
not supported by any configured account in this group | 官方后端(措辞里带「account / group」这类官方账号体系词汇) |
Invalid model name passed in model=... | 中转/兼容网关(措辞只谈模型名) |
所以不要只看状态码。404/400 本身不告诉你落在哪一层,错误文案才告诉你。
规避
- 自定义 provider 起一个不与内置重名的 id(如用自己中转的名字),这是成本最低的根治。
- 导入/迁移来的会话要显式重绑 provider,不要依赖自动解析。
- 派生新对话(引用卡片 → 新建)时,确认新会话继承的 provider 是不是你期望的那个。
相关
- 模型ID是入口相关的 —— 前缀是怎么被加上的
- 先分清平台错误还是应用错误 —— 同族:先定位归属层
- 多源更新按维度取真源 —— 同名实体必须有唯一的 id 约定
- 真源要按维度显式指定