简短答案
大模型答不准自己的版本号是正常现象,不代表你调用错了模型。
model 参数主要是给 API 服务端做路由的。模型本身不一定能看到这个字段,也不一定在训练数据中知道发布后的正式名称。官方网页能答对版本,通常是因为产品层注入了 system prompt,告诉模型当前身份。
通过 API 调用时,如果你没有在 system message 中写明模型身份,模型可能会根据训练数据猜一个旧名称。
什么时候会遇到
- 你调用了新模型,但它回答自己是旧版本
- 官网能答对版本,API 调用却答错
- 同一个模型在不同工具里自我介绍不一致
- 你想确认 API gateway 是否真的调用了指定模型
- 用户把“你是什么模型?”当作模型验证方法
为什么会这样
模型名称通常在训练完成后才确定。模型训练时学到的是语言、代码和知识模式,不一定包含发布后的最终版本名。
API 请求里的 model 字段用于告诉服务端应该把请求路由到哪个模型。这个字段不是普通对话内容,模型不一定会把它当成自己的身份信息。
官方网页会在产品层添加隐藏提示词,类似“你是某某模型”。通过 API 调用时,默认不会自动加入这些身份提示。
如何验证真实调用的模型
不要只问模型“你是什么版本”。更可靠的验证方式是看请求链路和响应字段。
| 验证方式 | 说明 |
|---|
| 调用日志 | 查看 dashboard 中每次请求实际使用的模型 |
| API 响应字段 | 查看响应 JSON 中的 model 字段 |
| Model ID | 确认请求里填写的 Model ID 来自当前 provider 或模型广场 |
| Key group | 确认 API Key、Base URL、Model ID 属于同一分组 |
示例响应:
{
"model": "claude-sonnet-5",
"choices": []
}
实际字段结构会随 API 格式变化。重点是查看服务端返回的模型字段和 dashboard 记录,而不是依赖模型自我介绍。
如何让模型按指定身份回答
如果你的产品需要模型在回答中说明自己的身份,可以在 system message 中明确写入:
你是 Claude Sonnet 5,通过 LLMEasy API 调用。
这和官方网页的原理类似:由应用层告诉模型“你是谁”。
system message 只能影响模型的自我介绍和行为风格,不能改变实际调用的模型。实际路由仍然由 Base URL、API Key、Key group 和 Model ID 决定。
常见误区
- 用“你是什么模型?”作为唯一验证方法。
- 看到模型答错版本,就认为 provider 替换了模型。
- 认为
model 参数一定会进入模型上下文。
- 忽略 dashboard 调用日志和响应中的
model 字段。
- 在 system message 中写了模型身份后,就以为实际模型也被切换了。
关于 LLMEasy
LLMEasy 的 dashboard 可以帮助你核对 API Key、Model ID、请求记录和余额消耗。排查模型是否调用正确时,优先查看调用日志和响应字段。
如果模型自我介绍和日志记录不一致,以日志和响应字段为准。