当用户应用不受支持的推理设置时发出警告
aider
Space 播放/暂停 —
f 全屏 —
←→ ±5秒
操作实录
- 0:01 用户有时会使用当前模型不支持的”reasoning”设置运行aider。这可能导致LLM API调用完全失败,且API提供商返回的错误信息不明确。我们需要预先警告用户以避免这种情况。
- 0:25 好的,让aider添加一个新的模型设置项,用于标注该模型支持哪些推理设置。当用户尝试应用不支持的设置时显示警告。
- 1:30 看起来它包含了一些我们不需要的额外改动。
- 1:45 让我们查看models代码并清理一些多余的行。
- 2:00 它还把警告逻辑做得过于保守了。我们需要在设置未被明确支持时才发出警告。
- 3:00 好的,现在让我们添加一个设置项,让高级用户可以主动关闭这些警告。
- 3:45 现在需要更新模型设置数据库,标注哪些模型支持哪些推理设置。我们先从处理未知提供商上已知模型的”fallback”设置的代码开始。
- 4:45 哦,我们忘记给aider看包含那段代码的实际文件了!aider要求查看它。
- 5:00 好吧,我们让aider修改它看不到的代码,把它搞糊涂了。
- 5:10 清空聊天记录,优化提示词再试一次。
- 6:00 看起来不错。继续更新完整的模型设置数据库YAML文件。”o1”等主要模型在这里有来自多个提供商(如OpenAI、OpenRouter等)的条目,我们需要全部更新。
- 7:43 打断一下,优化提示词更清楚地说明要更新哪些模型。
- 9:20 看起来不错。检查YAML文件,目测所有相关模型。
- 10:20 现在进行一些手动测试。
- 10:41 好的,使用Sonnet 3.7时不应该出现关于”thinking tokens”的警告。
- 10:55 看看aider能否发现问题?
- 11:28 这个解决方案听起来不太靠谱。添加更多相关代码,清空历史记录再试。
- 12:00 好的,试试aider提出的解决方案。
- 12:32 看看是否生效…没有!还是出现不必要的警告。撤销这个改动!
- 12:48 是时候进行一些手动打印调试了。
- 13:00 似乎”accept_settings”值没有被设置?
- 14:30 啊哈!我本地有一个Sonnet的模型设置文件覆盖了aider的内置设置。我们没更新它。让我们在那里添加”accepts_settings”。
- 14:45 这就是问题所在,不是bug。
- 14:59 好的,为这些功能添加测试覆盖。
- 15:09 在aider编写测试时,我们用”git diff”回顾所有改动。
- 15:34 aider完成测试编写,运行看看。
- 15:44 一个通过,一个失败。先看看通过的测试。
- 16:04 看看aider能否修复失败的测试。
- 16:14 aider需要查看另一个文件,这很合理。
- 16:29 它找到了问题,但试图”修复”代码。我们希望它修复测试。
- 16:47 好的,测试通过了。
- 16:55 我们应该停下来询问用户”确定吗?”,而不是在他们可能破坏API调用时只闪现警告。
- 17:59 好的,确认对话框看起来不错。
- 18:35 这段代码有点重复。进行一些重构。
- 19:44 Sonnet搞乱了代码编辑指令,aider正在重试。
- 19:54 清空聊天记录再试一次。
- 20:25 重构后测试还能通过吗?
- 20:55 测试通过,很好。微调警告文本。
- 21:10 现在让aider更新文档说明这些改动。
- 22:32 校对并编辑更新后的文档。
- 24:25 对文档改动进行最后的”git diff”检查。
- 24:56 让aider更新项目的HISTORY文件。
- 25:35 可以稍微优化HISTORY条目。
- 26:20 全部完成!