流媒体与用户体验Streaming & UX
部分状态如何到达用户。
本书中有 11 种模式。 · 已更新
何时使用每种模式
01. Stop / Cancel 让用户能够干净地中断正在进行的代理运行,释放资源并显示部分状态。 最佳适用: 长时间运行的代理,用户可能会在运行中注意到错误的方向。 权衡: 取消管道在不同提供者之间并非简单。 注意事项: 运行时间短,取消没有实际价值。
02. Citation Streaming 在生成的文本旁边流式传输引用,以便用户界面可以在内容出现时渲染源链接。 最佳适用: 输出引用文档,用户需要验证每个声明。 权衡: 流媒体协议更复杂。 注意事项: 输出是创造性的,且不基于可检索的文档。
03. Streaming Typed Events 在结果可用时将部分结果作为类型事件推送到客户端,而不是等待完整响应。 最佳适用: 用户面对的代理,其中首次令牌的时间被视为延迟。 权衡: 连接管理复杂性。 注意事项: 输出足够短,以至于批处理完整响应是可以的。
04. Unified Voice Interface 通过单一接口暴露文本转语音、语音转文本和实时语音对语音,以便语音代理可以在不重写循环的情况下更换提供商。 最佳适用: 构建可能因成本、质量或延迟原因切换提供商的语音代理。 权衡: 对抽象的最低共同分母压力 — 特定于提供者的声音和效果需要能力标志。 注意事项: 应用程序锁定在一个提供商的实时服务上,并且这种锁定是可以接受的。
05. Bidirectional Impulse Channel 让用户向代理注入冲动,并让代理通过一个通道向用户推送消息。 最佳适用: 代理运行的时间足够长,以至于纯请求-响应聊天无法达到目的。 权衡: 显著性阈值调整是经验性的。 注意事项: 交互是有限的回合对,没有需要后通道的情况。
本书中的所有模式
Stop / Cancel
×8让用户能够干净地中断正在进行的代理运行,释放资源并显示部分状态。
Citation Streaming
×7在生成的文本旁边流式传输引用,以便用户界面可以在内容出现时渲染源链接。
Streaming Typed Events
×6在结果可用时将部分结果作为类型事件推送到客户端,而不是等待完整响应。
Unified Voice Interface
×3通过单一接口暴露文本转语音、语音转文本和实时语音对语音,以便语音代理可以在不重写循环的情况下更换提供商。
Bidirectional Impulse Channel
×3让用户向代理注入冲动,并让代理通过一个通道向用户推送消息。
Salience-Triggered Output
×3让代理仅在内部显著性信号超过阈值时发出消息,而不是在每个周期都发出。
Generative UI
×2让代理决定在运行时渲染哪些界面组件,并通过类型化协议将它们流式传输到前端,以便界面跟随代理的输出,而不是硬编码。
Semantic Turn Endpointing
×1通过对部分转录的语义完整性进行分类来决定语音用户何时让出发言权,而不是固定的静默超时,这样代理可以快速回复而不打断发言者的思路。
Embodied-Proxy Handoff
×1使人类能够共享具身状态(能量、疲劳、环境),以便代理根据实际的人而不是无上下文的抽象用户来调整响应形式。
Liminal-State Detection
×1根据消息的时机和语气推断人类的注意状态(刚醒、专注、放松、分心),并调整响应形式,以便代理能够与用户的实际状态相匹配。
Delayed Streams Modeling
通过在预处理阶段用固定的偏移量对并行输入和输出流进行时间对齐,将流式语音任务转换为单解码器自回归问题,从而消除级联管道所需的学习读/写策略。