这类故障通常不是单点问题,先确认最外层的报错,再往里一层层看。 把配置文件里的模型从 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 就能通。

多数情况下不用停机,但涉及重启服务时最好挑低峰期。

先分清是哪一类原因

  1. 快照名必须写完整的年月日,少一段就查不到
  2. 用了控制台里的展示名而不是接口 id
  3. 自建兼容网关时要用部署名,不是原始模型名
  4. 配置文件里有多份 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 的文案把“不存在”和“没权限”合在一起说,别只盯这一句,先用模型列表接口排除名字写错,再去看项目授权。 处理过程中建议每改一项就验证一次,避免多个变量同时变化导致判断失真。

作者 9823189