ling-playground / docs /backlog /2025-10-11-20-32-chat-interrupt-output.md
cafe3310's picture
little demo
cb6eafc

A newer version of the Gradio SDK is available: 6.1.0

Upgrade

需求:聊天功能添加终止输出能力

  • 创建时间: 2025-01-27-15-30
  • 状态: 待处理 (Pending)
  • 重要性: 中等 (Medium)

需求描述

为聊天 Tab 添加终止输出功能,提升用户体验。具体要求:

  1. 按钮状态切换:

    • 正常状态下显示"发送消息"按钮
    • 模型输出期间,按钮文本变为"终止输出"
    • 输出完成后,按钮恢复为"发送消息"
  2. 中断机制:

    • 用户点击"终止输出"按钮时,立即停止当前的流式响应
    • 已输出的部分内容保留在聊天历史中
    • 系统应优雅地处理中断,避免产生错误或异常状态
  3. 用户体验:

    • 按钮状态变化应该直观明确
    • 中断操作应该响应迅速
    • 中断后用户可以立即发送新消息

技术实现要点

  • 需要在流式输出过程中检查中断信号
  • 使用 Gradio 的事件处理机制管理按钮状态
  • 确保中断后的状态清理和重置

验证方式

  1. 启动应用: 在终端中运行 python app.py
  2. 打开聊天 Tab: 在浏览器中打开应用,并切换到“聊天”标签页。
  3. 发送消息: 输入一条消息,点击“发送”按钮。
  4. 观察按钮状态: 确认“发送”按钮变为“终止”按钮。
  5. 终止输出: 在模型输出期间,点击“终止”按钮。
  6. 验证中断: 确认模型输出立即停止。
  7. 验证按钮恢复: 确认“终止”按钮恢复为“发送”按钮。
  8. 验证可再次发送: 确认可以立即发送新的消息。
  9. 验证正常完成: 发送一条简短消息,让其自然结束,确认结束后按钮会自动从“终止”恢复为“发送”。

验证结果

(暂无)