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