Skip to content

v1.7.9 — 一个对话只用一个账号,新对话才换人

Choose a tag to compare

@XDTrees XDTrees released this 02 Oct 08:37
· 49 commits to main since this release

有人反馈:除了「优先模式」,换别的模式都会掉命中率、掉速度。这个观察是对的,而且原因不在你的网络——在账号切换本身。所以这次加了一种新模式,专门解决这件事。

为什么换个模式就会掉命中率

上游的 prompt 缓存是按账号隔离的,不是按你这个人。

所以「轮换模式」和「均衡模式」每发一条消息都可能换一个账号,对上游来说就是换了一个租户——整段对话的缓存全部作废,从第一个字重新算。命中率当然掉,首字延迟当然涨。

而「优先模式」把这一切都押在一个账号上:缓存稳了,速度好了,代价是这个账号的额度会被你一个人用完。

一句话:以前你只能在「额度分摊」和「缓存命中」之间选一个。

新增「每对话固定」模式

现在可以两个都要。

规则很简单:一个对话从头到尾只用一个账号;你新开一个对话,才轮到下一个账号。

  • 同一个对话的每一轮都打同一个账号 → 上游缓存一直是热的 → 命中率和速度都是优先模式的水平。
  • 新对话按顺序铺到下一个账号 → 额度还是分散在几个账号上,不会只烧一个。

卡片上「账号使用方式」里多了一个「每对话固定(推荐)」,点一下就能切。

默认值仍然是「优先模式」,没有偷偷改你的设置。 想试新模式,自己点一下;不满意,再点回来。

账号被限流或被你关掉,会自动换绑

绑定不是死契。如果这个对话的账号:

  • 被上游限流了(只针对当前模型,别的模型照用),
  • 被你在卡片上关掉了,
  • 或者积分到了你设的保留线,

那么这个对话下一轮会自动换到一个能用的账号,并且以后就固定在新的那个账号上——不会每轮都重新挑,也不会因为一个账号打盹就让整个对话报错。

四种模式怎么选

  • 每对话固定:多个对话同时用,既想省额度又想保住命中率。推荐先试这个。
  • 优先模式:就一个对话,或者只有一个账号额度够用。缓存最稳。
  • 轮换模式:不在乎速度,只想让几个账号的积分严格平均地掉。
  • 均衡模式:随机抽,闲置越久的账号越容易被选中;比轮换更不容易被一个不健康的账号拖住。

已知边界

  • 绑定只存在内存里,重启 DSH 后就忘了。影响很小:重启只是让每个对话重新认一次账号,之后照样固定。
  • 绑定按对话的第一条用户消息区分。两个对话如果第一句话一字不差,会被当成同一个对话、共用账号。这种情况很少见,共用了也没有坏处,只是共享一份缓存。
  • 最多记住 200 个对话的绑定,超了会淘汰最久没用过的那个。被淘汰的对话下一轮重新绑定一次,仅此一次,行为不受影响。