diff --git a/src/views/ai/chat/index.vue b/src/views/ai/chat/index.vue
index 3c74d927..6706f700 100644
--- a/src/views/ai/chat/index.vue
+++ b/src/views/ai/chat/index.vue
@@ -151,7 +151,12 @@
- 发送
+
+ {{ conversationInProgress ? '进行中' : '发送'}}
+
+
+ 停止
+
@@ -170,6 +175,8 @@ const { copy } = useClipboard();
const searchName = ref('') // 查询的内容
const conversationId = ref('1781604279872581648') // 对话id
const conversationInProgress = ref() // 对话进行中
+conversationInProgress.value = false
+
const conversationInAbortController = ref() // 对话进行中 abort 控制器(控制 stream 对话)
const prompt = ref() // prompt
@@ -204,6 +211,10 @@ const searchConversation = () => {
/** send */
const onSend = async () => {
+ // 进行中不允许发送
+ if (conversationInProgress.value) {
+ return
+ }
const content = prompt.value;
// 清空输入框
prompt.value = ''
@@ -322,12 +333,19 @@ const onDelete = async (id) => {
message: '删除成功!',
type: 'success',
})
+ // tip:如果 stream 进行中的 message,就需要调用 controller 结束
+ stopStream()
+ // 重新获取 message 列表
+ await messageList();
+}
+
+const stopStream = async () => {
// tip:如果 stream 进行中的 message,就需要调用 controller 结束
if (conversationInAbortController.value) {
conversationInAbortController.value.abort()
}
- // 重新获取 message 列表
- await messageList();
+ // 设置为 false
+ conversationInProgress.value = false
}
/** 初始化 **/