报错是这么冒出来的。Dify 0.15 的模型供应商里模型名填的是 gpt-4o-latest,同一份工作流隔两天跑出来的摘要格式完全不同,日志里只有模型名,没有具体快照。

中间走过弯路,把「缓存键只带模型名,旧答案被复用」当成主因,改完现象没变。

这类报错背后常见的原因有几处,逐个排除就行。latest 是浮动别名,供应商侧随时指向新快照。少数情况下是工作流没锁模型版本,发布后自动跟随。

另外,评估集用旧快照跑的分,上线后无法复现。

动手时先把模型名换成带日期的快照

gpt-4o-2024-11-20

再往下在模型配置里固定该名称后重新发布

python dify_set_model.py --provider openai --model gpt-4o-2024-11-20

随后把本次发布用的快照写进记录

Add-Content release.log gpt-4o-2024-11-20

剩下的就是用同一输入对比两次输出

python run_workflow.py --input sample.json

恢复的判定其实很直接。连续三天同一输入输出格式一致,日志里能看到固定快照名,回滚时能准确切回上一版。

提醒一点。生产环境别用 latest 和任何浮动别名,模型名要写进发布记录,否则线上问题无法归因到具体版本。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189