先把当时的情况摆出来。自建网关的别名 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 字段都是旧快照,持续观察一小时没有回弹。

补一句。别名回滚要确认解析发生在服务端,客户端缓存的那一层不重启是不会刷新的。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189