如何实现打断输出功能?
需求动机
当用户不想继续等待大模型的流式输出结果时(比如回答答案过长、或用户输错想重新输入),打断大模型当前的输出是常见的需求。
提议的 API 是什么样的?
期待类似pro-chat组件的设计,给useXChat加一个返回值onCancel,调用该函数时,终止当前的sse调用,并停止对useXChat返回的messages和parsedMessages进行更新
提议的 API 是什么样的?
这个肯定你们更专业一些。。首先你们已经实现的是Sender组件的onCancel方法。在onCancel的时候,如何终止messages的输出?
比如,useXChat是否可以提供一个onCancelRequest方法?
最好能提供进一步的信息,比如你现在的系统中是怎么做的,类似竞品是怎么做的?你期待的 API 是什么样的用起来会比较舒服?
最好能提供进一步的信息,比如你现在的系统中是怎么做的,类似竞品是怎么做的?你期待的 API 是什么样的用起来会比较舒服?
感谢回复。
- 类似竞品:给组件一个useRef,然后用ref.stopGenerateMessage函数来打断生成。
- 期待:在useXChat上提供一个onCancel方法,调用该方法时,可以中断对大模型接口的调用,相应地useXChat的messages和parsedMessages也停止更新
好的,非常感谢!
我将参考你的建议以及提供的信息,最终方案后续 RFC 会明确。
https://github.com/ant-design/x/pull/319
可以解决该问题
#319
可以解决该问题
@ppbl
#319 可以解决该问题
@ppbl
请问现在打断输出功能有吗,文档里还是没有打断输出这块
https://x.ant.design/components/use-x-chat-cn#components-use-x-chat-demo-stream-cancel
@hty112 这个能力 @ppbl 已经添加了示例,可以参考下。