Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何实现打断输出功能? #248

Open
tianfudhe opened this issue Nov 26, 2024 · 7 comments
Open

如何实现打断输出功能? #248

tianfudhe opened this issue Nov 26, 2024 · 7 comments
Labels
enhancement New feature or request

Comments

@tianfudhe
Copy link

tianfudhe commented Nov 26, 2024

需求动机

当用户不想继续等待大模型的流式输出结果时(比如回答答案过长、或用户输错想重新输入),打断大模型当前的输出是常见的需求。

提议的 API 是什么样的?

期待类似pro-chat组件的设计,给useXChat加一个返回值onCancel,调用该函数时,终止当前的sse调用,并停止对useXChat返回的messages和parsedMessages进行更新

@afc163
Copy link
Member

afc163 commented Nov 26, 2024

提议的 API 是什么样的?

@tianfudhe
Copy link
Author

tianfudhe commented Nov 26, 2024

这个肯定你们更专业一些。。首先你们已经实现的是Sender组件的onCancel方法。在onCancel的时候,如何终止messages的输出?

比如,useXChat是否可以提供一个onCancelRequest方法?

@afc163
Copy link
Member

afc163 commented Nov 26, 2024

最好能提供进一步的信息,比如你现在的系统中是怎么做的,类似竞品是怎么做的?你期待的 API 是什么样的用起来会比较舒服?

@tianfudhe
Copy link
Author

最好能提供进一步的信息,比如你现在的系统中是怎么做的,类似竞品是怎么做的?你期待的 API 是什么样的用起来会比较舒服?

感谢回复。

  • 类似竞品:给组件一个useRef,然后用ref.stopGenerateMessage函数来打断生成。
  • 期待:在useXChat上提供一个onCancel方法,调用该方法时,可以中断对大模型接口的调用,相应地useXChat的messages和parsedMessages也停止更新

参考pro-chat设计

@YumoImer
Copy link
Collaborator

好的,非常感谢!

我将参考你的建议以及提供的信息,最终方案后续 RFC 会明确。

@YumoImer YumoImer added the enhancement New feature or request label Nov 27, 2024
@YumoImer
Copy link
Collaborator

#319

可以解决该问题

@YumoImer
Copy link
Collaborator

#319

可以解决该问题

@ppbl

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants