先把当时的情况摆出来。自建网关的别名 chat-prod 指向 gpt-4o 新快照,出问题后把别名改回旧版本,半小时内仍有新版本响应,响应体里的 model 字段还是新快照名。
把日志和配置对完,能解释这个现象的基本就这几处。客户端 SDK 缓存了模型列表。也可能是网关读的是另一份配置 改的不是生效文件。
还有一种情况,连接池复用了旧的长连接。另外,灰度规则按用户哈希固定到了新版本。
动手时先把响应里的实际 model 统计出来
grep -o '"model":"[^"]*"' out.jsonl | sort | uniq -c
接着确认网关进程加载的配置路径
ps -ef | grep gateway
随后重启网关并清空连接池
python gwctl.py restart --flush-pool
剩下的就是用固定请求验证别名解析结果
curl -s http://gw.local/v1/models/chat-prod
别只看报错消失,验证要多做一步。全部响应的 model 字段都是旧快照,持续观察一小时没有回弹。
补一句。别名回滚要确认解析发生在服务端,客户端缓存的那一层不重启是不会刷新的。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
