寤
寤
* 修改后 https://github.com/lobehub/lobe-chat/assets/51234911/e79149b1-1003-4007-8864-76ee4514e3b0 * 修改前 https://github.com/lobehub/lobe-chat/assets/51234911/8e019a45-931a-49de-84cd-7ba58780dabb 演示api响应较慢场景。 * 修改前 应该是在动画上做了控制,虽然逐字输出了,但api延迟不定的情况下还是会造成“ 我 是一 个 助手” 这样虽然快但输出间断的现象。 * 修改后 在接收响应时将chunk分割字符放入队列,配合计时器,能保证300毫秒内将队列输出完毕,在while chunk 结束后,一次性输出剩余内容。只要两次接收流的延迟在300ms内,可以尽可能的保持平稳不间断。达到的效果是“我 是 一 个 助 手” 这样不间断输出,在接收响应流快时加快输出速率,慢时减慢速率。
1.我认同你的看法 2.这个确实没深入了解 是只有响应间隔很长才会遇到,有的代理商就是慢。 按现在的方案,16ms 可能不太稳,我觉得是可以做到 配置中 支持根据自己响应的需要 调节字符输出间隔 按我的方案,将动态速率计算(300ms/queue.length)迁移到动画这里,加一个配置项 支持根据平均响应间隔 配置这个 300ms