Bladeren bron

智能体回答输出最新修改

htc 1 week geleden
bovenliggende
commit
866417b669
2 gewijzigde bestanden met toevoegingen van 18 en 42 verwijderingen
  1. 9 0
      src/api/agent/index.js
  2. 9 42
      src/views/modules/agent/dialog.vue

+ 9 - 0
src/api/agent/index.js

@@ -14,6 +14,15 @@ export function getContractList(query) {
   })
 }
 
+
+export function sendChatMessageStream(data) {
+  return request({
+    url: '/core/chat/sendChatMessageStream',
+    method: 'post',
+    data
+  })
+}
+
 // ---start 工作台
 export function getQueNumLineGraph(query) {
   return request({

+ 9 - 42
src/views/modules/agent/dialog.vue

@@ -135,6 +135,7 @@
     import DOMPurify from 'dompurify';
     import { ref, getCurrentInstance } from 'vue'
     import useClipboard from 'vue-clipboard3';
+    import { sendChatMessageStream } from '@/api/agent'
     const { toClipboard } = useClipboard();
     const { proxy } = getCurrentInstance();
     
@@ -192,49 +193,15 @@
 
     const startStream = async (query) => {
         try {
-            const response = await fetch(`${window.SITE_CONFIG['apiURL']}/core/chat/messages`, {//streamingMessage messages
-                method: 'POST',
-                headers: {
-                    'token':Cookies.get('token') || '',
-                    'Content-Type': 'application/json',
-                    // 'Accept': 'text/event-stream',
-                },
-                body: JSON.stringify({
-                    query
-                })
-            });
-
-            if (!response.ok || !response.body) {
-                throw new Error(`请求失败: ${response.status}`);
-            }
-
-            const reader = response.body.getReader();
-            const decoder = new TextDecoder('utf-8');
-            let buffer = ''; // 累积缓冲器
-
-            while (true) {
-                const { value, done } = await reader.read();
-                if (done) break;
-
-                buffer += decoder.decode(value, { stream: true });
-                // console.log(buffer, 'buffer');
-                const event = buffer;
-                    if (event.startsWith('data:')) {
-                        try {
-                            const jsonStr = event.replaceAll('data:', '');
-                            console.log(jsonStr, 'jsonStr');
-                            dialogList.value = [...dialogList.value].map((item, idx) => {
-                                if (idx === dialogList.value.length - 1) {
-                                    return { ...item, answer: item.answer + (jsonStr || '') };
-                                }
-                                
-                                return item;
-                            });
-                        } catch (e) {
-                            console.error('SSE解析失败', e, '原始数据:', event);
-                        }
+            sendChatMessageStream({query}).then(res => {
+                if(res.code!==0) return proxy.$message.error(res.msg);
+                dialogList.value = [...dialogList.value].map((item, idx) => {
+                    if (idx === dialogList.value.length - 1) {
+                        return { ...item, answer: res.data };
                     }
-            }
+                    return item;
+                });
+            })
         } catch (err) {
             console.log(err,'err');
         }