From cea709ad1c7bd45aa45972174bd528b15bf4ae6b Mon Sep 17 00:00:00 2001
From: yxl <584911253@qq.com>
Date: 星期五, 07 二月 2025 10:51:51 +0800
Subject: [PATCH] 最新代码提交

---
 src/views/chartView/index.vue |  224 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 182 insertions(+), 42 deletions(-)

diff --git a/src/views/chartView/index.vue b/src/views/chartView/index.vue
index 5d12549..a39d1f5 100644
--- a/src/views/chartView/index.vue
+++ b/src/views/chartView/index.vue
@@ -22,12 +22,14 @@
   getAgentIntention,
   getAgentLayerList,
   getAgentThistorySave,
+  getRagAgentIntention,
 } from "../../api/api.js";
 import mapSetFunc from "../../assets/js/mapSetFunc.js";
 import { nanoid } from "nanoid";
 import mapServer from "../../assets/js/map/mapServer.js";
 import mapImg from "../../assets/js/map/mapImg.js";
 import mapModel from "../../assets/js/map/mapModel.js";
+import { marked } from "marked";
 export default {
   name: "jwChat",
 
@@ -260,72 +262,210 @@
         session_id: this.uuid.toString(),
       };
 
-      var obj = {
-        ai: "",
-        create_time: msgData.getDate1(),
-        human: res,
-        sessionid: this.uuid,
-        update_time: "",
-        userid: 0,
-      };
+      if (formData.message.indexOf("@map") > -1) {
+        var obj = {
+          ai: "",
+          create_time: msgData.getDate1(),
+          human: res,
+          sessionid: this.uuid,
+          update_time: "",
+          userid: 0,
+        };
+        getAgentThistorySave(obj).then((response) => {
+          if (response.code == 200) {
+            obj.id = response.id;
+            this.obj = obj;
+          }
+          this.setAgentIntention(obj, formData);
+        });
+      } else {
+        this.setRagAgentIntention(formData);
+      }
 
-      getAgentThistorySave(obj).then((response) => {
-        if (response.code == 200) {
-          obj.id = response.id;
-          this.obj = obj;
-        }
-
-        this.setAgentIntention(obj, formData);
-      });
+      // var obj = {
+      //   ai: "",
+      //   create_time: msgData.getDate1(),
+      //   human: res,
+      //   sessionid: this.uuid,
+      //   update_time: "",
+      //   userid: 0,
+      // };
+      // getAgentThistorySave(obj).then((response) => {
+      //   if (response.code == 200) {
+      //     obj.id = response.id;
+      //     this.obj = obj;
+      //   }
+      //   this.setAgentIntention(obj, formData);
+      // });
     },
     async setAgentIntention(obj, formData) {
       console.log("obj", formData);
-      getAgentIntention(formData)
-        .then((response) => {
-          if (response.code != 200) {
-            if (formData.message != "@map") {
+      if (formData.message.indexOf("@map") > -1) {
+        getAgentIntention(formData)
+          .then((response) => {
+            if (response.code != 200) {
+              if (formData.message != "@map") {
+                var rolMsg = [
+                  {
+                    type: "text",
+                    val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
+                  },
+                ];
+                this.refashMsg(rolMsg);
+              }
+              return;
+            }
+            const type = response.type;
+            //鏅�氬璇濅俊鎭煡璇�
+            if (type == "message" || type == "Rag") {
+              //鍏抽棴鍦板浘
+              if (!this.closeMap) {
+                this.$store.state.setScreenFlag = false;
+              }
               var rolMsg = [
                 {
                   type: "text",
-                  val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
+                  val: type == "Rag" ? response.content : response.msg,
                 },
               ];
               this.refashMsg(rolMsg);
             }
-            return;
-          }
-
-          const type = response.type;
-          //鏅�氬璇濅俊鎭煡璇�
-          if (type == "message" || type == "Rag") {
-            //鍏抽棴鍦板浘
-            if (!this.closeMap) {
-              this.$store.state.setScreenFlag = false;
+            //鍦板浘鏌ヨ
+            else {
+              //鎵撳紑鍦板浘
+              this.$store.state.setScreenFlag = true;
+              this.setMapfunc(response.content, obj);
             }
+          })
+          .catch((error) => {
             var rolMsg = [
               {
                 type: "text",
-                val: type == "Rag" ? response.content : response.msg,
+                val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
               },
             ];
             this.refashMsg(rolMsg);
-          }
-          //鍦板浘鏌ヨ
-          else {
-            //鎵撳紑鍦板浘
-            this.$store.state.setScreenFlag = true;
-            this.setMapfunc(response.content, obj);
-          }
-        })
-        .catch((error) => {
+          });
+      } else {
+        getRagAgentIntention(formData).then((res) => {});
+      }
+      // getAgentIntention(formData)
+      //   .then((response) => {
+      //     if (response.code != 200) {
+      //       if (formData.message != "@map") {
+      //         var rolMsg = [
+      //           {
+      //             type: "text",
+      //             val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
+      //           },
+      //         ];
+      //         this.refashMsg(rolMsg);
+      //       }
+      //       return;
+      //     }
+      //     const type = response.type;
+      //     //鏅�氬璇濅俊鎭煡璇�
+      //     if (type == "message" || type == "Rag") {
+      //       //鍏抽棴鍦板浘
+      //       if (!this.closeMap) {
+      //         this.$store.state.setScreenFlag = false;
+      //       }
+      //       var rolMsg = [
+      //         {
+      //           type: "text",
+      //           val: type == "Rag" ? response.content : response.msg,
+      //         },
+      //       ];
+      //       this.refashMsg(rolMsg);
+      //     }
+      //     //鍦板浘鏌ヨ
+      //     else {
+      //       //鎵撳紑鍦板浘
+      //       this.$store.state.setScreenFlag = true;
+      //       this.setMapfunc(response.content, obj);
+      //     }
+      //   })
+      //   .catch((error) => {
+      //     var rolMsg = [
+      //       {
+      //         type: "text",
+      //         val: "鎶辨瓑锛屾湇鍔″櫒浼间箮鍑轰簡鐐归棶棰橈紝鎴戜滑姝e湪淇涓��",
+      //       },
+      //     ];
+      //     this.refashMsg(rolMsg);
+      //   });
+    },
+    //鏅�氬璇濋棶绛�
+    async setRagAgentIntention(formData) {
+      try {
+        // 鍙戦�佽姹�
+        const params = new URLSearchParams(formData);
+        const url = `/rag-api/rag?${params.toString()}`;
+        let response = await fetch(url, {
+          method: "get",
+          responseType: "stream",
+          headers: {
+            "Content-Type": "application/json",
+          },
+        });
+        // ok瀛楁鍒ゆ柇鏄惁鎴愬姛鑾峰彇鍒版暟鎹祦
+        if (!response.ok) {
           var rolMsg = [
             {
               type: "text",
-              val: "鎶辨瓑锛屾湇鍔″櫒浼间箮鍑轰簡鐐归棶棰橈紝鎴戜滑姝e湪淇涓��",
+              val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
             },
           ];
           this.refashMsg(rolMsg);
-        });
+          return;
+        }
+        // 鐢ㄦ潵鑾峰彇涓�涓彲璇荤殑娴佺殑璇诲彇鍣紙Reader锛変互娴佺殑鏂瑰紡澶勭悊鍝嶅簲浣撴暟鎹�
+        const reader = response.body.getReader();
+        // 灏嗘祦涓殑瀛楄妭鏁版嵁瑙g爜涓烘枃鏈瓧绗︿覆
+        const textDecoder = new TextDecoder();
+        let result = true;
+        let sqlValue = "";
+        while (result) {
+          // done琛ㄧず娴佹槸鍚﹀凡缁忓畬鎴愯鍙�  value鍖呭惈璇诲彇鍒扮殑鏁版嵁鍧�
+          const { done, value } = await reader.read();
+          if (done) {
+            result = false;
+            break;
+          }
+          console.log(textDecoder.decode(value), "鍒嗘杩斿洖鐨勬暟鎹�");
+          sqlValue += textDecoder.decode(value);
+          var rolMsg = [
+            {
+              type: "stream",
+              val: marked(sqlValue),
+            },
+          ];
+          this.refashMsg(rolMsg);
+        }
+        // console.log(sqlValue, "杈撳嚭鎵�鏈夎繑鍥炴暟鎹�");
+      } catch (err) {
+        var rolMsg = [
+          {
+            type: "text",
+            val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
+          },
+        ];
+        this.refashMsg(rolMsg);
+      }
+    },
+    async streamChatResponse(formData) {
+      try {
+        const response = await getRagAgentIntention(formData);
+        return response; // 杩斿洖娴佸搷搴�
+      } catch (error) {
+        var rolMsg = [
+          {
+            type: "text",
+            val: "鏈煡璇㈠埌鐩稿叧淇℃伅銆�",
+          },
+        ];
+        this.refashMsg(rolMsg);
+      }
     },
     setMapfunc(res, obj) {
       this.$store.state.showLenged = false;

--
Gitblit v1.9.3