Skip to content

v2.7.0 — 每次发消息都会重检当前模型

Choose a tag to compare

@liaoyuqing liaoyuqing released this 20 Oct 03:09
· 25 commits to main since this release

model-failover-manager v2.7.0

每次发送消息时,先检查这个会话要用的模型现在还能不能用。

行为

  • 可用就保留:不覆盖你手动选的模型,route 会话也不再每轮被拽回组内第一名(绑定时已经切过一次,这里只做健康检查)。
  • 不可用才切换:三种形态都算——被标记当日失败、超出北京时间时段、过了截止日;切换目标是分组此刻能提供的第一个可用模型。
  • 模型压根不在分组里:不插手(除非它带着失败标记)。
  • 判据与分组路由用的是同一套谓词,时段/截止日随时间变化、失败标记会被重置或过期,都能在下一条消息生效。

实现

「会话此刻要用的模型」需要新的一份记录:sessionController.selectModel 把选择写成 model/selection 会话事件 + 它自己的状态,从不改 Agent.options,而用户手选时插件的覆盖又被清掉,所以之前插件根本看不见手选的模型。现在按 覆盖 → 最近一次选择事件 → Agent.options 三级解析。子代理仍以 agent.options 为准(宿主从父会话 requestHeader 播种)。

GET /api/model-failover/session-info 新增 currentModel 字段,用来直接读某会话将要用的模型。

宿主模块更名为 host.v9.mjs:Loader 只改 patch 行 id 时沿用缓存模块,对已导入文件的编辑不会被拾取。

验证

node .offline-check.mjs(假 ctx 直接跑监听器与 HTTP 处理器)14/14 通过,其中四条对应本版:可用保留、不在分组不插手、出窗切换、过期切换,另加失败标记的新一轮替换。

资产

model-failover-manager-2.7.0.tgz —— npm pack 预构建包。

安装

dsh plugin add https://github.com/liaoyuqing/model-failover-manager