VesPi 1.0.47
修复
删掉供应商后,它的模型还卡在模型选择里
在设置里清空某个供应商的 key、或整条删除它之后,输入框上方的模型选择里那个模型仍然在。查下来是两个原因叠加:
-
判断「已退休供应商」的规则只覆盖了「清空 key」,没覆盖「整行删除」——删掉的供应商落到「配置里不存在」这一分支,被当成「不归我们管」放行了。
-
更关键的一点:清空 key 之后,配置里仍留着一条「有模型、但没有 key」的供应商,而内核会校验整份
models.yml并整体拒绝:Validate(models) error: Provider <name>: "apiKey" is required when defining custom models unless auth is "none" or "oauth".接着内核报 "No models available"——不只是那一家,所有供应商的模型全部消失,界面于是停在旧状态,看起来就像「删不掉」。
改动
- 退休判定改成两条互补规则:配置里没有该供应商 = 已退休;配置里有但 key 不可用 = 已退休。配置文件读不出来时一律不退休,避免一次瞬时读取失败清空整个菜单。
- 写入
models.yml时把这类供应商整条排除,不再生成会让内核整体报错的条目;auth为none/oauth的按内核约定放行。 - 打开模型选择时并行重读配置与内核列表——此前只读内核列表,而配置才是用户刚编辑的那一半。
验证
对内核 18.2.5 实测:清空某家供应商的 key 后,由「整份配置被拒、可用模型归零」变为「只少这一家,其余 8 个模型完好」。
补了 12 项回归测试;npm test(1252 项)与类型检查、lint 全部通过。