这类故障通常不是单点问题,先确认最外层的报错,再往里一层层看。 把配置文件里的模型从 gpt-3.5-turbo 改成 gpt-4-turbo-2024,接口立刻返回 404,原文是 The model `gpt-4-turbo-2024` does not exist or you do not have access to it,换成 gpt-4-turbo 就能通。
多数情况下不用停机,但涉及重启服务时最好挑低峰期。
先分清是哪一类原因
- 快照名必须写完整的年月日,少一段就查不到
- 用了控制台里的展示名而不是接口 id
- 自建兼容网关时要用部署名,不是原始模型名
- 配置文件里有多份 model 字段,改到了不生效的那一份
按顺序处理
1. 把账号下可用的模型 id 全量打印出来核对
curl -s https://api.openai.com/v1/models -H "Authorization: Bearer $KEY" | jq -r '.data[].id'
2. 按 turbo 前缀筛出候选快照
curl -s https://api.openai.com/v1/models -H "Authorization: Bearer $KEY" | jq -r '.data[].id' | grep turbo
3. 确认配置实际加载的是哪一份文件
python -c "import json;print(json.load(open('config.json'))['model'])"
4. 改成确认存在的 id 并加一次冒烟请求
curl https://api.openai.com/v1/chat/completions -H "Authorization: Bearer $KEY" -d '{"model":"gpt-4-turbo","messages":[{"role":"user","content":"ping"}]}'
怎么确认已经恢复
调用返回 200,返回体 model 字段与请求里的 id 一致,日志中不再出现 404,灰度发布也能正常切流。
容易忽略的地方
404 的文案把“不存在”和“没权限”合在一起说,别只盯这一句,先用模型列表接口排除名字写错,再去看项目授权。 处理过程中建议每改一项就验证一次,避免多个变量同时变化导致判断失真。