报错是这么冒出来的。统一网关用 LiteLLM 1.52,config 里写了 model_list,业务请求 model=gpt-4o-mini 返回 400,原文 Invalid model name passed in model=gpt-4o-mini,直连官方完全正常。
中间走过弯路,把「容器里挂的还是旧配置」当成主因,改完现象没变。
把日志和配置对完,能解释这个现象的基本就这几处。model_list 里的 model_name 与请求名不一致。另一种情况是配置文件路径没被加载。
另外,provider 前缀写错 例如把 openai 写成 azure。
上来先看网关暴露的模型列表
curl -s http://127.0.0.1:4000/v1/models -H "Authorization: Bearer $LITELLM_KEY" | jq -r '.data[].id'
然后核对配置文件里的别名
python -c "import yaml;print([m['model_name'] for m in yaml.safe_load(open('config.yaml'))['model_list']])"
随后改完重启让配置生效
docker compose restart litellm
剩下的就是用别名发一次真实请求
curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:4000/v1/chat/completions -H "Authorization: Bearer $LITELLM_KEY" -H 'Content-Type: application/json' -d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"hi"}]}'
中间停过一次,把已经改的东西回滚干净,再重新来一遍。
同样的操作我在测试机上先走了一遍,线上只做验证过的部分。
别只看报错消失,验证要多做一步。模型列表里能看到该别名,请求返回 200,网关日志里的 provider 与实际供应商一致。
这里还有个坑。网关只认注册过的别名,请求名和配置名差一个字符都不行,先查模型列表最快。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
