L3.06.3abort must be available throughout streaming设计研究

需支持随时中止

别名: 随时中止 · 生成可停 · stop generation

概念解释

代码已经跑偏进另一门语言,字还在往外冒。界面只有转圈,没有停。用户要么等它自己结束,要么关整个会话。随时中止(abort throughout streaming)要求:生成一旦开始占用时间与注意,人就必须能在任意时刻把它停掉,而不必等到自然结束,也不必拆掉整次会话。

中止是不是流式的主要收益、停下来的那一截算不算成果,是后面的问题。这里只要求:停得了。

机制

流式把人钉在屏幕前:注意被占用,等待被填满,离开的成本上升。若此时没有停,占用就从「降低等待感」翻成「强制看完」。跑偏、敏感内容、已经够用、网络在烧额度,都需要一个与「再等一会」相反的动作。没有这个动作,流式在交互上是单向的:系统决定何时结束,人只能接收。

中止还必须是生成过程中的一等控件。藏在取消会话、刷新页面、杀掉进程里,等于不提供——那些动作的粒度是整次任务,不是这一次生成。

怎么研究

设置明显跑偏或过长的生成,比较:无中止、中止藏在菜单、中止始终可见。因变量:是否停得下来、停下来的时刻、误用中止(本想复制却点了停)的次数、停不成而关会话的比例。自变量:控件位置、流开始后多久出现、停是否立即不再吐 token。

「立即不再吐」要单独测。按钮在、token 还在出,对用户来说等于没停。

边界

生成在百毫秒内结束,中止窗口小到点不到,不必为它单独做控件,但一旦超过可感知等待,控件就要在。批量离线任务的「停」是取消队列,不是流式中止,两者不要做成同一个按钮。误触中止的代价若极高(不可恢复的长任务),需要确认;日常对话生成不需要。这条不处理停下来之后文本归谁可用,也不把中止宣传成流式的主要价值。

怎么落地

  • 流式一开始就把中止放在与输入框同级的位置,不要等跑偏之后再去菜单里找。
  • 按下之后在一个反馈周期内停止新 token,并明确已经停下,而不是按钮变灰、字还在出。
  • 中止不要绑定「清空会话」或「关闭页面」。粒度是这一次生成。
  • 验证:故意让生成跑偏,计时到人把输出停住。找不到按钮、点了还在出、或只能靠刷新,都是未支持随时中止。

延伸

  • 同组L3.06.1 逐步输出降低等待感 · L3.06.2 流式内容在完成前不应被当作最终结果
  • 相邻L3.11 生成过程的流式呈现 · L4.05 可中断性与回滚
  • 站内检索abort generation · stop streaming · interrupt decode

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/L3.06.3