
一段上周还能用的刷题脚本今天返回“模型不可用”。这时最容易做的事是把模型名换一个继续跑最容易丢的东西也是这次改动前后到底用了谁。GitHub 在 10 月 19 日确认一批模型在 Copilot 多数使用入口弃用且说明企业策略可能影响替代模型的可见性。这是特定产品范围的变化不代表这些模型在所有供应商 API 都关闭了。GitHub 原公告对算法练习版本清单的价值不在“收集工具”而在解释结果为什么无法重放。一次生成结果应当和产生它的环境一起保存。四种名字不要塞进同一列产品入口网页、IDE 插件、本地命令行或供应商 API。相同模型名不保证相同工具权限。请求模型名实际发送的字符串可能是动态别名。服务模型身份响应或供应商材料能确认到什么程度确认不到就留未知。客户端环境SDK、插件、协议修订号与本地依赖。DeepSeek 文档当前说明deepseek-flash指向具体检查点并保留部分兼容旧名。别名没变不代表服务内容一直没变检查点名称也不能直接充当网页发布日期。DeepSeek 入门文档我不会把 API 密钥放进清单。密钥不是版本日志里出现它也不会增强可复现性。一个不替未知字段“猜答案”的清单检查器下面完全是本地构造的清单不发出真实请求。其中resolved_model是本文自己的记录字段不是宣称供应商一定返回的 API 字段。def inspect_manifest(m): required (surface, requested_model, client_version, prompt_sha256, testset_revision) missing [k for k in required if not m.get(k)] if missing: raise ValueError(missing: ,.join(missing)) if api_key in m or authorization in m: raise ValueError(credentials must not enter manifest) return identified if m.get(resolved_model) else identity_unknown manifest { surface: teaching-offline-fixture, requested_model: example-alias, resolved_model: None, client_version: example-client/1, prompt_sha256: teaching-digest-not-a-real-request, testset_revision: local-cases-v1, } assert inspect_manifest(manifest) identity_unknown bad dict(manifest, api_keydummy-not-a-key) try: inspect_manifest(bad) except ValueError: pass else: raise AssertionError(credential field was accepted) print(unknown identity preserved; credential field rejected)脚本在 Python 3.9.6 运行通过。它只检查记录约定不能确认服务端的真实模型。教学摘要也不是一个计算得到的 SHA-256真实任务应对实际提示词字节计算摘要保存可访问的脱敏原文再关联请求 ID。升级时先缩小问题范围SDK 导入失败先查本地依赖HTTP 参数被拒绝查该版本的请求契约响应成功但答案测试失败回到题目与生成结果。三者混在一张“模型不稳定”的表里很难采取行动。Claude 10 月日志同时列出 API 版本与 SDK 变化并提示存在破坏性改动。日志能证明发生了版本调整不能替代迁移文档本文没有补造无法核实的请求字段。官方发布日志我会先在独立环境保存一个最小请求、原始错误类别和依赖清单再尝试迁移。旧模型已经不可用就把那一格记成缺测不能拿替代模型的结果填回旧名字下面。本文未调用任何模型也没有比较升级前后的解题能力真正值得留下的是下一次故障发生时仍能说明白的记录。