chd 4 tháng trước cách đây
mục cha
commit
44430226ec
2 tập tin đã thay đổi với 126 bổ sung124 xóa
  1. 3 0
      .env
  2. 123 124
      src/entrypoints/sidepanel/Chat.vue

+ 3 - 0
.env

@@ -1,5 +1,8 @@
 VITE_OPENAI_API_KEY_TONG=sk-e9855234f47346049809ce23ed3ebe3f
 VITE_MAX_FILE_NUMBER=10
 VITE_APP_BASE_API='http://192.168.1.166:7777'
+
+# 接口地址 (WebSocket)
+VITE_API_WS_URL = 'ws://192.168.1.166:7777'
 # 终端ID
 VITE_CLIENT_ID = '765be25e4e78b101b896cb3ecac39b1b'

+ 123 - 124
src/entrypoints/sidepanel/Chat.vue

@@ -442,146 +442,145 @@ async function handleAsk(value) {
       scrollbar.value.setScrollTop(scrollbar.value.wrapRef.scrollHeight)
     }
   })
-  request.post('/ai/model/question',{
+  // request.post('/ai/model/question',{
+  //   conversationId: msgUuid.value,
+  //   modelName: '通义千问-Max',
+  //   question: msg.rawContent,
+  //   id: '699637194561691650',
+  //   // redisKey:msg.redisKey
+  //   }, {
+  //   onDownloadProgress: progressEvent => {
+  //     console.log('progressEvent', progressEvent)
+  //     let { responseText } = progressEvent.event.target
+  //     const newData = responseText.slice(buffer.length)
+  //     buffer += newData
+  //     // const events = buffer.split('\n\n')
+  //     const events = buffer.split('\n\n').map(item => {
+  //       const data = item.replace(/^data: /, '').trim()
+  //       // return data
+  //       try {
+  //         return JSON.parse(data)
+  //       } catch (error) {
+  //         return ''
+  //       }
+  //     })
+  //     debugger
+  //     buffer = events.pop() // 剩余部分保留到下一次
+  //     // events.forEach(event => {
+  //     //   if (event.trim()) {
+  //     //     const data = event.replace(/^data: /, '').trim();
+  //     //     const infoData = JSON.parse(data);
+  //     //     console.log('Received event:', infoData.message);
+  //     //   }
+  //     // });
+  //     console.log('Received data:', events, 'aaa', buffer)
+  //   }
+  // })
+  // 使用 WebSocket 替代 EventSource
+  try {
+    // 创建 WebSocket 连接
+     await askQues({
     conversationId: msgUuid.value,
     modelName: '通义千问-Max',
     question: msg.rawContent,
     id: '699637194561691650',
     // redisKey:msg.redisKey
-    }, {
-    onDownloadProgress: progressEvent => {
-      console.log('progressEvent', progressEvent)
-      let { responseText } = progressEvent.event.target
-      const newData = responseText.slice(buffer.length)
-      buffer += newData
-      // const events = buffer.split('\n\n')
-      const events = buffer.split('\n\n').map(item => {
-        const data = item.replace(/^data: /, '').trim()
-        // return data
-        try {
-          return JSON.parse(data)
-        } catch (error) {
-          return ''
-        }
-      })
-      debugger
-      buffer = events.pop() // 剩余部分保留到下一次
-      // events.forEach(event => {
-      //   if (event.trim()) {
-      //     const data = event.replace(/^data: /, '').trim();
-      //     const infoData = JSON.parse(data);
-      //     console.log('Received event:', infoData.message);
-      //   }
-      // });
-      console.log('Received data:', events, 'aaa', buffer)
-    }
-  })
-  // 使用 WebSocket 替代 EventSource
-  // try {
-  //   // 创建 WebSocket 连接
-    //  await askQues({
-    // conversationId: msgUuid.value,
-    // modelName: '通义千问-Max',
-    // question: msg.rawContent,
-    // id: '699637194561691650',
-    // // redisKey:msg.redisKey
-    // })
-  //   const wsUrl = `ws:${wsBaseUrl}/question/${msgUuid.value}`;
-  //   const socket = new WebSocket(wsUrl);
-  //   // 连接建立时发送消息
-  //   socket.onopen = () => {
-  //     console.log('WebSocket 连接已建立');
-  //     // 发送请求数据
-  //     // socket.send(JSON.stringify({
-  //     //   conversationId: msgUuid.value,
-  //     //   modelName: '通义千问-Max',
-  //     //   question: msg.rawContent,
-  //     //   id: '699637194561691650',
-  //     //   redisKey: msg.redisKey,
-  //     //   token: userStore.token
-  //     // }));
-  //   };
+    })
+    const wsUrl = `${import.meta.env.VITE_API_WS_URL}/webSocket/${msgUuid.value}`;
+    console.log(wsUrl,12312);
+    
+    const socket = new WebSocket(wsUrl);
+    // 连接建立时发送消息
+    socket.onopen = () => {
+      console.log('WebSocket 连接已建立');
+      // 发送请求数据
+      socket.send(JSON.stringify({
+     session:msgUuid.value
+      }));
+    };
     
-  //   // 接收消息
-  //   socket.onmessage = (event) => {
-  //     try {
-  //       const data = JSON.parse(event.data);
-  //       console.log('收到数据:', data);
-  //       return
-  //       // 追加内容
-  //       if (data.content) {
-  //         obj.content += data.content;
-  //         obj.rawContent += data.content;
+    // 接收消息
+    socket.onmessage = (event) => {
+      try {
+        console.log('收到数据:', event);
+
+        // const data = JSON.parse(event.data);
+        // console.log('收到数据:', data);
+        return
+        // 追加内容
+        if (data.content) {
+          obj.content += data.content;
+          obj.rawContent += data.content;
           
-  //         // 滚动到底部
-  //         nextTick(() => {
-  //           if (scrollbar.value && scrollbar.value.wrapRef) {
-  //             scrollbar.value.setScrollTop(scrollbar.value.wrapRef.scrollHeight);
-  //           }
-  //         });
-  //       }
+          // 滚动到底部
+          nextTick(() => {
+            if (scrollbar.value && scrollbar.value.wrapRef) {
+              scrollbar.value.setScrollTop(scrollbar.value.wrapRef.scrollHeight);
+            }
+          });
+        }
         
-  //       // 如果是最后一条消息,关闭连接
-  //       if (data.done) {
-  //         socket.close();
-  //         sendLoading.value = false;
+        // 如果是最后一条消息,关闭连接
+        if (data.done) {
+          socket.close();
+          sendLoading.value = false;
           
-  //         // 保存到数据库
-  //         putChat({
-  //           ...obj,
-  //           content: obj.content
-  //         });
+          // 保存到数据库
+          putChat({
+            ...obj,
+            content: obj.content
+          });
           
-  //         isShowPage.value = false;
-  //         pageInfoList.value = [];
-  //       }
-  //     } catch (error) {
-  //       console.error('解析消息出错:', error);
-  //     }
-  //   };
+          isShowPage.value = false;
+          pageInfoList.value = [];
+        }
+      } catch (error) {
+        console.error('解析消息出错:', error);
+      }
+    };
     
-  //   // 处理错误
-  //   socket.onerror = (error) => {
-  //     console.error('WebSocket 错误:', error);
-  //     socket.close();
-  //     sendLoading.value = false;
+    // 处理错误
+    socket.onerror = (error) => {
+      console.error('WebSocket 错误:', error);
+      socket.close();
+      sendLoading.value = false;
       
-  //     // 如果没有收到任何内容,显示错误消息
-  //     if (!obj.content) {
-  //       obj.content = '连接出错,请重试';
-  //       // 保存到数据库
-  //       putChat({
-  //         ...obj,
-  //         content: obj.content
-  //       });
-  //     }
-  //   };
+      // 如果没有收到任何内容,显示错误消息
+      if (!obj.content) {
+        obj.content = '连接出错,请重试';
+        // 保存到数据库
+        putChat({
+          ...obj,
+          content: obj.content
+        });
+      }
+    };
     
-  //   // 连接关闭
-  //   socket.onclose = () => {
-  //     console.log('WebSocket 连接已关闭');
-  //     sendLoading.value = false;
-  //   };
+    // 连接关闭
+    socket.onclose = () => {
+      console.log('WebSocket 连接已关闭');
+      sendLoading.value = false;
+    };
     
-  //   // 添加到控制器列表,以便可以在需要时中断连接
-  //   controllerList.value.push({
-  //     abort: () => {
-  //       socket.close();
-  //     }
-  //   });
-  // } catch (error) {
-  //   console.error('创建 WebSocket 失败:', error);
-  //   sendLoading.value = false;
+    // 添加到控制器列表,以便可以在需要时中断连接
+    controllerList.value.push({
+      abort: () => {
+        socket.close();
+      }
+    });
+  } catch (error) {
+    console.error('创建 WebSocket 失败:', error);
+    sendLoading.value = false;
     
-  //   // 显示错误消息
-  //   obj.content = '连接失败,请重试';
+    // 显示错误消息
+    obj.content = '连接失败,请重试';
     
-  //   // 保存到数据库
-  //   putChat({
-  //     ...obj,
-  //     content: obj.content
-  //   });
-  // }
+    // 保存到数据库
+    putChat({
+      ...obj,
+      content: obj.content
+    });
+  }
   
   // 移除原有的 EventSource 代码
   // const params = new URLSearchParams({...});