OpenAI 兼容 API model not found 模型错误排查
先用同一个 Key 查询模型列表。一次短请求就能判断应该检查认证、路由、模型 ID,还是生成接口兼容性。
model not found 到底表示什么?
直接结论:服务端无法把本次请求中的模型标识路由到可用模型。不要凭记忆改模型名,应使用同一 API Key 查询模型列表,再复制返回的完整 id。
| 实际结果 | 能确认什么 | 下一步 |
|---|---|---|
GET /v1/models 返回 401 | 请求已到认证层,但凭据缺失或未通过 | 检查 Authorization 头,以及 Key 由哪套 MonkeyAI 系统签发 |
| 模型列表成功,但没有目标 ID | 该 Key 当前看不到这个完整 ID | 选择返回列表中的 ID,或确认是否应开通权限 |
| 模型列表成功,完整 ID 存在,但生成失败 | 基础路由和模型可见性已通过 | 检查接口兼容性、错误码和请求证据 |
| 模型列表返回 HTML 或 404 | 请求可能没有进入兼容 API 路由 | 检查 Base URL,以及客户端是否正确拼接 /models |
先查询当前 Key 可见的模型
OpenAI Models API 把 GET /v1/models 定义为查询当前可用模型及其基础信息的接口。请使用出错客户端正在使用的同一域名和同一 Key 发起请求。
curl -sS https://monkeytheme.com/v1/models \ -H "Authorization: Bearer ***"
查看返回的 data[].id。拼写、标点和后缀都要一致。其他服务商、旧教程或不同账户出现过某个名字,并不能证明当前 Key 在这里也能调用它。
Base URL、域名和 Key 必须属于同一套系统
请使用与出错客户端相同的 Base URL 和凭据排查。不同系统签发的 Key 不能混用。MonkeyAI 的 OpenAI 兼容接入参数是:
OPENAI_BASE_URL=https://monkeytheme.com/v1 OPENAI_API_KEY=***
客户端只要求填写一次 Base URL。不要同时在 Base URL 和自定义接口字段追加 /v1,否则可能变成 /v1/v1。如果原始响应是 HTML,应先检查最终请求 URL,而不是继续改模型名。
复制完整模型 ID,不要自造别名
模型字段应使用 /v1/models 返回的完整 ID。客户端里显示的“fast”“default”或中文名称可能只是本地标签,不一定是 API 模型 ID。请同时检查客户端模型字段、环境变量、工作区配置和 Agent 单独覆盖项。
curl -sS https://monkeytheme.com/v1/models \
-H "Authorization: Bearer ***" \
| python3 -c 'import json,sys; [print(x.get("id")) for x in json.load(sys.stdin).get("data", [])]'模型在列表里,但请求仍然失败怎么办?
保存 HTTP 状态、结构化错误码、响应头、可用的 request ID、接口类型和时间戳。模型出现在列表中,不代表它支持所有接口和所有请求字段。OpenAI 兼容网关的协议覆盖范围可能不同,应以实际响应为准。
- 确认客户端调用的是
/v1/chat/completions还是/v1/responses。 - 移除工具、图片和可选参数,用最小合法请求复测一次。
- 对比发出的模型 ID 与列表中复制的 ID 是否完全一致。
- 提交工单时不要附上 API Key 或完整敏感提示词。
官方资料与相关教程
常见问题
出现 model not found 后,可以直接猜一个更新的模型名吗?
不可以。请使用同一 Key 请求 GET /v1/models,并复制返回的完整 data[].id。
模型列表成功,是否代表生成请求一定成功?
不代表。它只能确认本次请求的基础认证、路由和模型可见性;生成接口与请求格式仍需兼容。
为什么 models 接口返回 HTML?
请求可能进入了网站或 SPA 页面,而不是 API。请检查最终 Base URL,并确认请求地址是 /v1/models。
其他 MonkeyAI 系统签发的 Key 可以混用吗?
不可以。凭据只属于签发它的系统。请配套使用 monkeytheme.com 的 Key 和 Base URL。
提交排障工单时应提供什么?
提供时间戳、接口、模型 ID、HTTP 状态、安全的错误详情和可用的 request ID。不要提交 API Key 或完整敏感提示词。