API 报 model not found / 模型不存在?五个原因和对应查法(2026)
报「模型不存在」时,九成不是模型下架了,而是名字、端点、权限三者之一对不上。按顺序排查,两分钟能定位。
第一步永远是拉一次模型列表
几乎所有兼容 OpenAI 协议的端点都提供 `GET /v1/models`。用你**正在用的那个 key 和那个 base_url** 调一次,把返回的清单和你填的名字逐字对比。这一步花不到一分钟,却能一次性排掉「拼错」「base_url 指错」「未开通」三种最常见的原因——因为这三种情况下,你要的名字都不会出现在那份清单里。
base_url 的坑:结尾那个 /v1
这是被问得最多的一个。有的服务商要求 base_url 以 `/v1` 结尾,有的会自动补。填错的表现很有迷惑性:不是报 404,而是报「模型不存在」——因为请求打到了一个存在但不认识这个模型的路径上。**排查方法:把实际发出的完整 URL 打印出来看一眼**,不要相信配置文件里写的是什么。
官方名和服务商代号可能都对,也可能只有一个对
通过中转或聚合服务调用时,同一个模型可能有两种可用名字:厂商官方名(如 `claude-sonnet-5`)和服务商自己的代号。有的服务商两种都认,有的只认一种。**别假设,查一次文档或模型列表就知道。** cocodot 这边两种都可以:官方名和代号(如 `mcs-6`)都能路由到同一个模型,完整清单在 cocodot.co/pricing#models,机读版是 `GET https://cocodot.co/api/ai/models`。
「所有模型都说不存在」= 一定是端点问题
如果你换了好几个模型名都报不存在,那问题不在名字上。八成是 base_url、鉴权头、或者请求路径的问题——请求根本没到该到的地方。先用最简单的一个模型和最短的请求体验证连通性,通了再回来调模型名。**先解决连通,再解决具体模型**,顺序反了会浪费很多时间。
确实下架了怎么办
模型下架是会发生的,尤其是预览版和带日期后缀的快照版本。判断方法是查厂商的发布记录。真下架了只能换一个——这时候用 OpenAI 兼容接口的好处体现出来:换模型名是改一个字符串,不用动 SDK、不用重新对接。
五个原因,怎么快速区分
| 原因 | 典型表现 | 怎么确认 |
|---|---|---|
| 名字拼错 / 版本后缀不对 | 换个模型名就好了 | 拉 /v1/models 逐字比对 |
| base_url 指错 | 所有模型都说不存在 | 打印实际请求地址 |
| 模型未开通 | 别的模型正常,这个不行 | 查服务商控制台的开通状态 |
| 用了对方没有的别名 | 官方名可以、代号不行(或反过来) | 看服务商文档的命名规则 |
| 模型已下架 | 官方公告里有 | 查厂商发布记录 |