模型从 gpt-4o 切到 gpt-4o-mini 后,同一个问题仍返回旧模型的答案,缓存 key 里只有 prompt 的 md5。乍看像缓存或者权限的锅,追下去往往不是。

python -c "import hashlib;print(hashlib.md5(('gpt-4o-mini|'+p).encode()).hexdigest())"

追下去是这么回事:缓存 key 只算了提示词内容,模型名、温度、system 提示都没进 key。换模型后命中旧结果,看起来像配置没生效。

「缓存键缺模型版本」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。

权限不要一口气开到最大,先加到够用再往上试,范围小才好收。

具体做法是,key 里加入模型名和版本号;温度 max_tokens 也拼进 key;切换模型时清一次相关缓存;用两个模型问同一问题验证结果不同。

验收就看一点,切换模型后首次请求返回新模型答案 缓存命中率正常回升。

作者 9823189