请求别名不等于实际模型 ID
更新于 2026-09-22
**请求里的模型名可能只是一个别名(路由名),provider 响应里返回的 `model` 才是实际执行的模型 ID。两者不同不是错误,不该去"修正"它 —— 该修的是观测层把实际 ID 丢掉了。**一次实例
- 请求
model: deepseek-chat,DeepSeek 返回 model: deepseek-v4-flash。
- 最初被当成"请求名与返回名不一致 = bug"。用户的判断相反:实际返回的才是对的,模型 ID 就应该以返回为准。
- 真正的缺陷在适配器:Pi 的 Responses adapter 解析了响应的
id / usage / status,唯独没保存 response.model → AssistantMessage.responseModel = undefined → Langfuse 回退显示请求别名,事实被抹掉。
结论
- 观测数据要分开存两个字段:
requestedModel(别名/路由名)与 responseModel(实际模型),而不是强行让它们相等。
- 不要把返回的实际 ID 硬编码进适配器;provider 将来返回别的 ID 也要如实记录。
- 这属于纯 observability 元数据修复,不改请求、不改推理行为。
相关