跳转到内容
返回主站

Model Not Found

Model Not Found 错误表示请求中指定的模型名称无效或不可用。这是接入 New API 时常见的问题。

错误示例

{
"error": {
"message": "The model 'gpt-4o-pro' does not exist",
"type": "invalid_request_error",
"code": "model_not_found",
"param": "model"
}
}

原因分析

原因说明
模型名称错误拼写错误、大小写不匹配或使用了过时的名称
模型未启用该模型在平台上存在但未对你开放
模型已下线模型已被官方停止服务
Key 无权限你的 API Key 没有访问该模型的权限

如何查看可用模型列表

通过 /v1/models 接口查看当前 Key 可用的所有模型:

Terminal window
curl "$BASE_URL/v1/models" \
-H "Authorization: Bearer $API_KEY"

响应示例:

{
"object": "list",
"data": [
{
"id": "gpt-4o",
"object": "model",
"created": 1700000000,
"owned_by": "openai"
},
{
"id": "gpt-4o-mini",
"object": "model",
"created": 1700000000,
"owned_by": "openai"
},
{
"id": "claude-3-5-sonnet-20241022",
"object": "model",
"created": 1700000000,
"owned_by": "anthropic"
}
]
}

只能使用返回列表中存在的模型 id。如果目标模型不在列表中,说明该模型未对你开放或已下线。

排查步骤

1. 检查模型名称拼写

对比请求中的模型名称与可用模型列表中的名称,确保完全一致(包括大小写)。

Terminal window
# 错误:大小写不匹配
-d '{"model": "GPT-4O", ...}'
# 正确
-d '{"model": "gpt-4o", ...}'

2. 检查模型名称是否有多余字符

# Python:打印模型名称,检查隐藏字符
model = "gpt-4o"
print(repr(model)) # 查看原始字符串,检查是否有隐藏字符

3. 确认模型是否在可用列表中

Terminal window
# 查找特定模型是否在可用列表中
curl -s "$BASE_URL/v1/models" \
-H "Authorization: Bearer $API_KEY" | \
python3 -c "import sys,json; data=json.load(sys.stdin); [print(m['id']) for m in data['data'] if 'gpt' in m['id'].lower()]"

4. 在管理后台查看模型启用状态

  1. 登录管理后台
  2. 进入 模型管理 或 渠道管理 页面
  3. 查看目标模型是否已启用
  4. 确认你的 Key 是否有权限访问该模型

正确的模型名称格式

常见模型名称示例

提供商正确的模型名称
OpenAIgpt-4o, gpt-4o-mini, gpt-4-turbo, o1, o1-mini
Anthropicclaude-3-5-sonnet-20241022, claude-3-5-haiku-20241022
Googlegemini-2.0-flash, gemini-1.5-pro
DeepSeekdeepseek-chat, deepseek-reasoner

使用示例

Terminal window
curl "$BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Hello"}]
}'
from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.example.com/v1"
)
response = client.chat.completions.create(
model="gpt-4o", # 确保名称与可用列表一致
messages=[{"role": "user", "content": "Hello"}]
)

常见问题

模型名称带日期 vs 不带日期

部分模型名称包含日期后缀(如 claude-3-5-sonnet-20241022),有些则只有简写。请以 /v1/models 返回的名称为准。

不同渠道的模型名称可能不同

New API 支持通过多个渠道聚合模型。同一个模型在不同渠道可能有不同的名称映射。如果不确定使用哪个名称,请先查询可用模型列表。