model not exist / model not found 怎么解决?模型名排查与可用模型查询

更新于

模型不存在通常不是网络问题,而是模型名、协议或密钥所在分组对不上。这篇先教你从报错原文判断原因,再用一条命令查出这把密钥能用的全部模型;我们还整理了 API 快连网关近 30 天最常见的几种写错,以及 Claude Code、Codex 等客户端特有的坑,最后列出新模型容易踩的参数限制。

📌
一句话答案:用 GET /v1/models 查出当前密钥可用的准确模型名,原样填写;再确认 Base URL 协议对得上、密钥所在分组开放了这个模型。报错里出现的模型名如果不是你选的,多半是客户端在后台发的辅助请求,见下文「按客户端排查」。

本文讲的是通过 API、编程工具或第三方客户端调用模型时的报错。如果你是在 ChatGPT 网页版或手机 App 里看到 model not found,那是 OpenAI 官方服务里的提示,可以先刷新页面或新开一个对话,再到 status.openai.com 看官方服务有没有故障。

先看报错原文,判断是哪种情况

报错里出现意思怎么办
Model "X" is not supported by any configured account in this group(404,类型 model_not_found)你的密钥所在分组没有这个模型。这是最常见的一种换成分组里有的模型,或换一把对应分组的密钥
no available accounts supporting model: X (channel pricing restriction)(503)本站没有上架这个模型名,常见于自己加了 -high、-nothinking 之类后缀的写法换成 模型广场 里标了价格的名字(这类写法有时也会出现在 /v1/models 列表里,但没有定价、调不通);确实需要的模型联系客服确认
Images API is not supported for this platform(404)用非生图分组的密钥调了 /v1/images 生图接口换生图分组的密钥,见 GPT Image 2.5 API 生图教程
model_not_found / The model X does not exist模型名写错,或请求发到了别的服务用下面的方法查准确模型名;确认 Base URL
返回一段网页 HTML / Unexpected token <不是模型问题:Base URL 填错了(填成网页地址,或写成 http://、www.)把 Base URL 改成 https://apikl.ai/v1
400 参数错误(用 *-5-5 或 gpt-6.1-sol 时)新模型不接受某些旧参数看下文「新模型的参数限制」

前三种都是网关在发往上游之前就拦下的,请求没有到达上游模型,不会扣费。

查出这把密钥能用哪些模型

BASH
curl https://apikl.ai/v1/models -H "Authorization: Bearer sk-你的密钥"

返回结果里的 id 就是可以直接填写的模型名。列表只包含这把密钥所在分组的模型,想要的模型不在里面,就说明这个分组没有它:到 控制台 用对应分组新建一把密钥即可。也可以在 模型广场 按分组查看模型和价格。

只想看模型名、不想看整段 JSON,可以这样过滤:

BASH
curl -s https://apikl.ai/v1/models -H "Authorization: Bearer sk-你的密钥" \ | python3 -c "import sys,json; [print(x['id']) for x in json.load(sys.stdin)['data']]"

Windows PowerShell 里请写 curl.exe(不带 .exe 会调用 PowerShell 自带的同名命令,参数写法不同):

PowerShell
curl.exe https://apikl.ai/v1/models -H "Authorization: Bearer sk-你的密钥"

网关上最常见的几种写错

下面是我们按 API 快连网关近 30 天的「模型不存在」类报错整理的,按出现频率从高到低:

写成了问题在哪改成
gpt-image-2.5-flare 等生图模型,用的却是聊天分组的密钥生图模型只在生图分组里换生图分组的密钥
claude-opus-5-5、claude-sonnet-5-5 等,名字没错密钥所在分组没开这个模型用 /v1/models 查分组里有什么,或换分组
claude-opus-5.5、claude-haiku-4.5Claude 模型名用横线,不用点claude-opus-5-5 这样的横线写法
claude-haiku-4-5-20251001、gpt-4o-mini、gpt-5.5带日期的旧写法、旧型号,分组里大多没有换成 /v1/models 列出的名字
gemini-3.7-flash-high、gemini-2.5-flash-nothinking后缀写法没有上架(503)用模型广场里标了价格的名字
codex-auto-review、claude-haiku-5-5,但你根本没选过客户端在后台发的辅助请求见下一节

最常见的 6 个原因

  1. 模型名写错:多了空格、大小写不一致、混进中文标点,都会找不到模型。
  2. 点和横线写反:Claude 新模型用横线,例如 claude-sonnet-5-5、claude-opus-5-5;GPT 模型用点,例如 gpt-5.6-sol、gpt-6.1-sol。
  3. 密钥分组不对:GPT 分组的密钥调不了 Claude 模型,反之亦然。
  4. 把界面上的标签当成模型名:有些客户端会在模型名旁显示 [1m] 之类的上下文提示或中文说明,那不是模型名的一部分。
  5. 协议填错:OpenAI 兼容客户端用 https://apikl.ai/v1,Claude Code 用 https://apikl.ai。
  6. 客户端缓存了旧配置:桌面软件改完服务商或模型后,彻底退出再打开。

按客户端排查

Claude Code:报错里是你没选过的 haiku 模型

Claude Code 除了你选的主模型,还会用 Haiku 级别的小模型处理一些后台功能。官方文档说明,ANTHROPIC_DEFAULT_HAIKU_MODEL 既决定 haiku 别名指向哪个模型,也用于这些后台功能。如果你的分组里没有 Haiku,就会在日志或界面里看到 claude-haiku-… 模型不存在。

解决办法:在 ~/.claude/settings.json 的 env 里把它指到分组里有的模型,保存后重开 Claude Code:

JSON
{ "env": { "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-sonnet-5-5" }}

如果 settings.json 里已经有 env(例如填了 Base URL 和密钥),把这一行加进原来的 env 里,不要再写第二个。主模型用 /model 切换或 ANTHROPIC_MODEL 指定,同样不要带 [1m]。完整配置见 Claude Code 配置教程。

Codex:报错里是 codex-auto-review

这是 Codex 开启「自动审批」后用的内部模型名:approvals_reviewer 设成 auto_review 时,Codex 会让一个审核模型先判断命令能不能执行,请求里的模型名就是 codex-auto-review。它不是公开模型,接第三方服务时会报模型不存在(Codex 官方仓库里也有用户反馈)。改回默认值、由你自己确认即可:

~/.codex/config.toml
approvals_reviewer = "user"

主模型写在 config.toml 的 model 里,填 /v1/models 列出的名字,例如 gpt-5.6-sol。完整配置见 Codex 配置教程。

聊天客户端和浏览器插件:辅助功能还在用默认模型

很多聊天客户端和翻译插件除了主模型,还给「话题命名」「翻译」「总结」等辅助功能单独设了模型,默认值可能是 gpt-4o-mini 这类分组里没有的模型。我们在网关上就看到过把 gpt-4o-mini 发给 Claude 分组密钥的请求。到客户端设置里把这些辅助模型也改成分组里有的模型。

自己写代码调用

model 字段原样填 /v1/models 里的名字,不要加前缀(如 openai/)或后缀。OpenAI SDK 的 base_url 填 https://apikl.ai/v1,Anthropic SDK 填 https://apikl.ai,详见 OpenAI API 调用与兼容接入指南。

推荐先用这些模型测通

用途模型名适合场景
Codex / OpenAI 兼容gpt-5.6-sol编码、通用推理、自动化,稳定
GPT 新型号gpt-6.1-sol更复杂的任务
Claude 均衡claude-sonnet-5-5日常 Claude Code、速度快、单价低
Claude 高能力claude-opus-5-5复杂代码、长文档、深度分析

以上模型是否可用取决于密钥所在分组,以 /v1/models 的结果为准。

快速修复模板

Cline、Roo Code、OpenClaw、Hermes 这类 OpenAI 兼容客户端,先按下面这组最稳的配置测试,能跑通再换成你想用的模型:

OpenAI Compatible
Provider : OpenAI CompatibleBase URL : https://apikl.ai/v1API Key : sk-你的密钥Model : gpt-5.6-sol

不确定是客户端的问题还是模型名的问题,就绕开客户端直接发一条最小请求(GPT 分组的密钥)。这条能通,说明模型名和密钥都没问题,问题在客户端配置:

BASH
curl https://apikl.ai/v1/chat/completions \ -H "Authorization: Bearer sk-你的密钥" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-5.6-sol","messages":[{"role":"user","content":"hi"}]}'

新模型的参数限制(返回 400)

下面这些情况会被直接拒绝并返回 400,不会扣费。删掉对应参数即可:

  • claude-sonnet-5-5 / claude-opus-5-5:请求里手动设置了 thinking(enabled 或 disabled)、强制指定了 tool_choice;Sonnet 5.5 还不接受 temperature(非 1)、top_p、top_k。
  • claude-haiku-5-5:temperature 不是 1、top_p 不是 0.99、两者同时传、thinking 设为 enabled,或传了 top_k。
  • gpt-6.1-sol:推理强度(reasoning effort)写成 none 或 minimal。请改为 low、medium、high、xhigh 或 max。

常见问题

模型不存在的报错会扣费吗?

不会。分组没有该模型、模型未上架、生图接口不支持这几种,都是网关在发往上游之前就拦下的,使用记录里不会有扣费。

模型广场里有这个模型,为什么我的密钥调不了?

模型广场展示的是全站各个分组的模型,而一把密钥只能调它所在分组的模型。在模型广场找到这个模型属于哪个分组,到 控制台 用那个分组新建密钥即可。

同一个模型名,别人能用我不能?

多半是你们的密钥不在同一个分组。分别用各自的密钥请求一次 /v1/models,对比列表就清楚了。

使用记录里的模型名和我填的不一样?

Claude Code、Codex 等客户端会在后台自己发起一些辅助请求(例如生成标题、压缩上下文),用的可能是别的模型,这是客户端行为,不是线路乱跳。

昨天能用的模型今天提示不存在?

可能是模型下线或改名。先用 /v1/models 查当前可用的名字;仍有疑问把完整报错、客户端名称、Base URL 和模型名发给客服(不要发完整密钥)。

→
密钥报无效看 401 invalid_api_key 怎么解决;其他状态码看 报错大全。