File size: 1,751 Bytes
cb6eafc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 需求:聊天功能添加终止输出能力

- **创建时间:** 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. **验证正常完成:** 发送一条简短消息,让其自然结束,确认结束后按钮会自动从“终止”恢复为“发送”。

## 验证结果

(暂无)