API 提示 model not found 或 404:区分模型名、接口路径与权限问题
用错误正文、最终请求地址和最小测试,区分模型不存在、路径拼接错误、账户分组与接口协议不匹配。
API 返回 404 或 model not found,先看完整错误正文和最终请求地址。它可能是接口路径不存在、模型 ID 不匹配,也可能是当前账户没有权限。只看到数字 404 就修改密钥或充值,通常不能定位原因。
本文适用于通过中转站使用兼容 API 的排错。各平台的错误封装不同,下表是排查线索,不是所有平台的统一约定。
先区分三种错误
| 看到的内容 | 优先检查 | 为什么 |
|---|---|---|
| HTML 网页、网关 404 | 域名、请求路径、HTTP 方法 | 请求可能还没到达模型接口 |
| JSON 中包含 model_not_found | 实际模型 ID、Key 权限、渠道分组 | 接口可能存在,但模型不可用于该请求 |
| 文本提示 unsupported endpoint | 客户端协议与服务商支持范围 | 同一模型不一定支持每一种接口 |
即使错误提到了 model,也不能仅凭它判断服务商不提供该模型。有些平台会把没有权限的模型同样返回为“未找到”。
第一步:保存最终请求地址
区分“客户端填写的 Base URL”和“客户端实际请求的完整 URL”。部分客户端自动追加版本和路径,另一些要求你填写更完整的地址,先看所用客户端与服务商的说明。
下面是路径拼接的演示,不是真实服务地址:
- 服务商规定基础地址为 https://api.example.com/v1。
- 若客户端自动追加 /chat/completions,最终应为 https://api.example.com/v1/chat/completions。
- 若误把 /v1 又追加一次,就可能得到 /v1/v1/chat/completions。
仅在浏览器打开基础地址得到 404,并不能证明配置错误。浏览器一般发 GET 请求,而生成接口可能要求向特定路径发 POST 请求,基础地址本身也可能没有首页。
第二步:核对模型 ID,不要用展示名代替
从当前账户可用模型页面复制准确 ID,保留大小写、连字符和版本后缀。网站展示的“旗舰模型”只是商品名称,不一定是 API 接受的字符串。
刷新客户端缓存的模型列表。如果旧模型已停用,按照服务商迁移公告选择替代模型,并重新检查价格与功能,不能仅为让请求成功就悄悄更换业务模型。
第三步:确认同一账户、Key 和渠道
控制台能看到模型,可能只是公共目录,不代表每个 Key 都能调用。核对密钥所在项目、分组、模型白名单、有效期及购买的套餐范围。
如果服务商支持查询模型列表,可用同一 Key 检查;如果不支持该接口,应以其文档或客服确认方式为准。模型列表查询成功也不能替代一次真实生成测试。
第四步:核对客户端使用的接口
Chat Completions、Responses 和其他厂商原生协议的路径、请求体与响应格式可能不同。服务商支持其中一种,不表示它支持全部协议。把路径名称手工改成另一个词而不转换请求体,也可能失败。
先用服务商针对你当前协议提供的最小示例测试,再配置客户端。能够完成一条纯文本请求后,再逐项启用工具、图片或其他功能。
一次只改一个变量
| 对照测试 | 观察到的结果 | 说明与下一步 |
|---|---|---|
| 同 Key、同地址,换已确认可用模型 | 成功 | 优先查目标模型权限或渠道 |
| 同模型、同账户,用官方示例格式 | 成功 | 查客户端拼接路径和请求体 |
| 修正重复版本路径 | 成功 | 保留成功的完整 URL 作为记录 |
| 所有最小请求仍失败 | 未定位 | 带日志联系服务商,不连续盲试 |
真实生成测试可能产生费用。设置小预算,并保存时间、请求 ID、状态码、错误正文和一次修改后的结果。
客服需要哪些信息
提供客户端名称与版本、脱敏后的最终 URL、HTTP 方法、模型 ID、所选分组、错误正文及请求 ID。明确“已经测试过什么、每次改变了什么”。隐藏 Authorization、完整密钥、账户敏感信息和私人输入内容。
重新创建 Key 能解决吗? 只有在旧 Key 的权限、状态或所属项目有问题时才可能有帮助,路径拼错不会因此修复。
充钱能解锁吗? 只有服务商明确说明是套餐或额度限制时再考虑;先确认错误原因和目标模型权限。
相关页面:Base URL 与模型 ID、401/403 排查、服务商列表。