From 9804a9bb6e5b6bfd038725495e0cb662a2aa50c6 Mon Sep 17 00:00:00 2001
From: hailu <962012470@qq.com>
Date: 星期一, 25 十二月 2023 17:01:00 +0800
Subject: [PATCH] gpt

---
 src/view/single-page/home/home.vue |    1 
 src/view/largeModel/gpt.vue        |  216 ++++++++++++++++++++++++++---------------------------
 2 files changed, 108 insertions(+), 109 deletions(-)

diff --git a/src/view/largeModel/gpt.vue b/src/view/largeModel/gpt.vue
index 8f9bd88..bcc68b8 100644
--- a/src/view/largeModel/gpt.vue
+++ b/src/view/largeModel/gpt.vue
@@ -156,13 +156,16 @@
                 // { sender: 'ai', text: '浣犲ソ锛屼笅闈㈡槸涓�绡囧叧浜庡仴搴风敓娲绘柟寮忕殑鏂囩珷銆� 鍋ュ悍鏄汉绫荤敓娲讳腑鏈�瀹濊吹鐨勮储瀵屼箣涓�銆傜劧鑰岋紝鍦ㄧ幇浠gぞ浼氫腑锛岀敱浜庣敓娲昏妭濂忓揩銆佸伐浣滃帇鍔涘ぇ銆佺幆澧冩薄鏌撶瓑鍥犵礌鐨勫奖鍝嶏紝瓒婃潵瓒婂鐨勪汉闈复鐫�鍋ュ悍闂銆傚洜姝わ紝鍏绘垚鍋ュ悍鐨勭敓娲绘柟寮忓彉寰楀挨涓洪噸瑕併�� 棣栧厛锛屽仴搴风殑楗涔犳儻鏄繚鎸佸仴搴风殑閲嶈鍥犵礌涔嬩竴銆傚潎琛¢ギ椋熸槸缁存寔韬綋鍋ュ悍鐨勫熀纭�銆備汉浣撻渶瑕佽泲鐧借川銆佺⒊姘村寲鍚堢墿銆佽剛鑲�佺淮鐢熺礌銆佺熆鐗╄川绛夊绉嶈惀鍏荤墿璐ㄦ潵缁存寔姝e父鐨勭敓鐞嗗姛鑳姐�傚洜姝わ紝鎴戜滑搴旇澶氬悆鏂伴矞钄彍銆佹按鏋溿�佸叏璋风被椋熷搧锛屽噺灏戦珮鐑噺銆侀珮鑴傝偑銆侀珮绯栭鍝佺殑鎽勫叆銆傛澶栵紝瑕佷繚鎸侀ギ椋熺殑澶氭牱鎬э紝閬垮厤鍋忛锛屼互纭繚鎽勫叆鐨勮惀鍏荤墿璐ㄧ殑鍏ㄩ潰鎬у拰鍧囪 鎬с�� 鍏舵锛岄�傚綋鐨勮繍鍔ㄦ槸缁存寔鍋ュ悍鐨勯噸瑕佹墜娈点�傜幇浠gぞ浼氱殑鐢熸椿鏂瑰紡浣垮緱寰堝浜洪暱鏃堕棿鍧愮潃锛岀己涔忚繍鍔ㄣ�傞暱鏈熺己涔忚繍鍔ㄤ細瀵艰嚧鑲ヨ儢銆佸績琛�绠$柧鐥呫�佺硸灏跨梾绛夊仴搴烽棶棰樸�傚洜姝わ紝鎴戜滑搴旇閫傚綋澧炲姞鏃ュ父鐨勮繍鍔ㄩ噺锛屼緥濡傛琛屻�佽窇姝ャ�侀獞杞︾瓑鏈夋哀杩愬姩锛屼互鍙婂姏閲忚缁冪瓑鏃犳哀杩愬姩锛屼互淇冭繘鏂伴檲浠h阿锛屽寮鸿韩浣撶殑鎶垫姉鍔涘拰鍏嶇柅鍔涖�� 姝ゅ锛屼繚鎸佽壇濂界殑鐢熸椿涔犳儻涔熸槸缁存寔鍋ュ悍鐨勯噸瑕佸洜绱犱箣涓�銆傝壇濂界殑鐢熸椿涔犳儻鍖呮嫭瑙勫緥浣滄伅銆佸厖瓒崇潯鐪犮�佹垝鐑熼檺閰掋�佷繚鎸佸績鎯呮剦蹇瓑銆傝寰嬩綔鎭拰鍏呰冻鐫$湢瀵圭淮鎸佽韩浣撳仴搴峰拰绮剧鐘舵�佽嚦鍏抽噸瑕併�傛垝鐑熼檺閰掑彲浠ュ噺灏戞偅蹇冭绠$柧鐥呫�佽偤閮ㄧ柧鐥呯瓑鍋ュ悍闂鐨勯闄┿�備繚鎸佸績鎯呮剦蹇彲浠ュ噺灏戝帇鍔涳紝淇冭繘韬績鍋ュ悍銆� 鏈�鍚庯紝瀹氭湡浣撴鍜岀Н鏋佹不鐤椾篃鏄繚鎸佸仴搴风殑閲嶈鎵嬫銆傚畾鏈熶綋妫�鍙互鍙婃棭鍙戠幇娼滃湪鐨勫仴搴烽棶棰橈紝浠ヤ究鍙婃椂閲囧彇鎺柦杩涜娌荤枟銆備竴鏃﹀彂鐜板仴搴烽棶棰橈紝瑕佺Н鏋侀厤鍚堝尰', avatar: require('../../assets/images/rrlogo.png'), timestamp: this.getNowTime() },
                 // { sender: 'ai', text: '浣犲ソ锛屼笅闈㈡槸涓�绡囧叧浜庡仴搴风敓娲绘柟寮忕殑鏂囩珷銆� 鍋ュ悍鏄汉绫荤敓娲讳腑鏈�瀹濊吹鐨勮储瀵屼箣涓�銆傜劧鑰岋紝鍦ㄧ幇浠gぞ浼氫腑锛岀敱浜庣敓娲昏妭濂忓揩銆佸伐浣滃帇鍔涘ぇ銆佺幆澧冩薄鏌撶瓑鍥犵礌鐨勫奖鍝嶏紝瓒婃潵瓒婂鐨勪汉闈复鐫�鍋ュ悍闂銆傚洜姝わ紝鍏绘垚鍋ュ悍鐨勭敓娲绘柟寮忓彉寰楀挨涓洪噸瑕併�� 棣栧厛锛屽仴搴风殑楗涔犳儻鏄繚鎸佸仴搴风殑閲嶈鍥犵礌涔嬩竴銆傚潎琛¢ギ椋熸槸缁存寔韬綋鍋ュ悍鐨勫熀纭�銆備汉浣撻渶瑕佽泲鐧借川銆佺⒊姘村寲鍚堢墿銆佽剛鑲�佺淮鐢熺礌銆佺熆鐗╄川绛夊绉嶈惀鍏荤墿璐ㄦ潵缁存寔姝e父鐨勭敓鐞嗗姛鑳姐�傚洜姝わ紝鎴戜滑搴旇澶氬悆鏂伴矞钄彍銆佹按鏋溿�佸叏璋风被椋熷搧锛屽噺灏戦珮鐑噺銆侀珮鑴傝偑銆侀珮绯栭鍝佺殑鎽勫叆銆傛澶栵紝瑕佷繚鎸侀ギ椋熺殑澶氭牱鎬э紝閬垮厤鍋忛锛屼互纭繚鎽勫叆鐨勮惀鍏荤墿璐ㄧ殑鍏ㄩ潰鎬у拰鍧囪 鎬с�� 鍏舵锛岄�傚綋鐨勮繍鍔ㄦ槸缁存寔鍋ュ悍鐨勯噸瑕佹墜娈点�傜幇浠gぞ浼氱殑鐢熸椿鏂瑰紡浣垮緱寰堝浜洪暱鏃堕棿鍧愮潃锛岀己涔忚繍鍔ㄣ�傞暱鏈熺己涔忚繍鍔ㄤ細瀵艰嚧鑲ヨ儢銆佸績琛�绠$柧鐥呫�佺硸灏跨梾绛夊仴搴烽棶棰樸�傚洜姝わ紝鎴戜滑搴旇閫傚綋澧炲姞鏃ュ父鐨勮繍鍔ㄩ噺锛屼緥濡傛琛屻�佽窇姝ャ�侀獞杞︾瓑鏈夋哀杩愬姩锛屼互鍙婂姏閲忚缁冪瓑鏃犳哀杩愬姩锛屼互淇冭繘鏂伴檲浠h阿锛屽寮鸿韩浣撶殑鎶垫姉鍔涘拰鍏嶇柅鍔涖�� 姝ゅ锛屼繚鎸佽壇濂界殑鐢熸椿涔犳儻涔熸槸缁存寔鍋ュ悍鐨勯噸瑕佸洜绱犱箣涓�銆傝壇濂界殑鐢熸椿涔犳儻鍖呮嫭瑙勫緥浣滄伅銆佸厖瓒崇潯鐪犮�佹垝鐑熼檺閰掋�佷繚鎸佸績鎯呮剦蹇瓑銆傝寰嬩綔鎭拰鍏呰冻鐫$湢瀵圭淮鎸佽韩浣撳仴搴峰拰绮剧鐘舵�佽嚦鍏抽噸瑕併�傛垝鐑熼檺閰掑彲浠ュ噺灏戞偅蹇冭绠$柧鐥呫�佽偤閮ㄧ柧鐥呯瓑鍋ュ悍闂鐨勯闄┿�備繚鎸佸績鎯呮剦蹇彲浠ュ噺灏戝帇鍔涳紝淇冭繘韬績鍋ュ悍銆� 鏈�鍚庯紝瀹氭湡浣撴鍜岀Н鏋佹不鐤椾篃鏄繚鎸佸仴搴风殑閲嶈鎵嬫銆傚畾鏈熶綋妫�鍙互鍙婃棭鍙戠幇娼滃湪鐨勫仴搴烽棶棰橈紝浠ヤ究鍙婃椂閲囧彇鎺柦杩涜娌荤枟銆備竴鏃﹀彂鐜板仴搴烽棶棰橈紝瑕佺Н鏋侀厤鍚堝尰', avatar: require('../../assets/images/rrlogo.png'), timestamp: this.getNowTime() },
 
-            ]
+            ],
+            messagesCopy: [],
+            first: true,
         }
     },
     mounted() {//鎸傝浇瀹屾瘯
         this.height = window.innerHeight - 305
-        // this.getNowTime()
-        this.getChat1()
+
+        this.getChat()
+
     },
     activated() {//婵�娲婚〉闈�
 
@@ -211,101 +214,88 @@
          * 娓呯┖鍏ㄩ儴绛旀
          */
         clear(index) {
-            axios.request({
-                url: '/eventkg/DeleteGptChatContent',
-                method: 'post',
-                data: {
-                    id: this.messages[index].id
+            let that = this
+            that.$Modal.confirm({
+                title: "纭鍒犻櫎",
+                content: "纭鍒犻櫎鍚楋紵姝ゆ搷浣滀笉鍙仮澶嶏紒",
+                loading: true,
+                onOk: () => {
+                    setTimeout(() => {
+                        axios.request({
+                            url: '/eventkg/DeleteGptChatContent',
+                            method: 'post',
+                            data: {
+                                id: that.messagesCopy[index].id
+                            },
+                        }).then(res => {
+                            if (res.data.Check == true) {
+                                that.messages.splice(index, 1)
+                                that.messagesCopy.splice(index, 1)
+                            } else {
+
+                            }
+                        }).catch(err => {
+                        })
+                        that.$Modal.remove();
+                    }, 1000);
                 },
-            }).then(res => {
-                if (res.data.Check == true) {
-                    this.getChat1()
-                } else {
+            });
 
-                }
-            }).catch(err => {
-
-            })
         },
         clearAll() {
-            // this.loading = true
-            for (let i = 0; i < this.messages.length; i++) {
-                axios.request({
-                    url: '/eventkg/DeleteGptChatContent',
-                    method: 'post',
-                    data: {
-                        id: this.messages[i].id
-                    },
-                }).then(res => {
-                    if (res.data.Check == true) {
-                        
-                    } else {
+            let that = this
+            that.$Modal.confirm({
+                title: "纭娓呯┖",
+                content: "纭娓呯┖鍚楋紵姝ゆ搷浣滀笉鍙仮澶嶏紒",
+                loading: true,
+                onOk: () => {
+                    setTimeout(() => {
+                        axios.request({
+                            url: '/eventkg/DeleteGptChatContent',
+                            method: 'post',
+                            data: {
+                                id: localStorage.getItem('userId')
+                            },
+                        }).then(res => {
+                            if (res.data.Check == true) {
+                                that.messages = []
+                                that.messagesCopy = []
+                            } else {
 
-                    }
-                }).catch(err => {
-
-                })
-                this.messages.splice(i, 1)
-                i--
-            }
-            this.messages = []
-            // this.getChat()
-            // this.loading = false
-        },
-        getChat1() {
-            // this.loading = true
-            this.messages = []
-            axios.request({
-                url: '/eventkg/GetGptChatPages',
-                method: 'post',
-                data: {
-                    pageIndex: 1,
-                    pageSize: 20
+                            }
+                        }).catch(err => {
+                        })
+                        that.$Modal.remove();
+                    }, 1000);
                 },
-            }).then(res => {
-                if (res.data.Check == true) {
-                    let items = res.data.Data.Items
-
-                    for (let i = 0; i < items.length; i++) {
-                        if (items[i].Type == 'user') {
-                            this.messages.push({ id: items[i].Id, sender: 'user', text: items[i].Content, avatar: require('../../assets/images/gptUser.png'), timestamp: items[i].CreateTime });
-                        }
-
-                        if (items[i].Type == 'gpt') {
-                            this.messages.push({ id: items[i].Id, sender: 'ai', text: items[i].Content, avatar: require('../../assets/images/rrlogo.png'), timestamp: items[i].CreateTime });
-                        }
-                    }
-                    // this.loading = false
-                } else {
-                    // this.loading = false
-
-                }
-            }).catch(err => {
-
-            })
-
+            });
         },
+        /**
+         * 鑾峰彇鑱婂ぉ璁板綍
+         */
         getChat() {
-            this.messages = []
+            this.messagesCopy = []
             axios.request({
                 url: '/eventkg/GetGptChatPages',
                 method: 'post',
                 data: {
                     pageIndex: 1,
-                    pageSize: 1000
+                    pageSize: 50
                 },
             }).then(res => {
                 if (res.data.Check == true) {
                     let items = res.data.Data.Items
-
                     for (let i = 0; i < items.length; i++) {
                         if (items[i].Type == 'user') {
-                            this.messages.push({ id: items[i].Id, sender: 'user', text: items[i].Content, avatar: require('../../assets/images/gptUser.png'), timestamp: items[i].CreateTime });
+                            this.messagesCopy.push({ id: items[i].Id, sender: 'user', text: items[i].Content, avatar: require('../../assets/images/gptUser.png'), timestamp: items[i].CreateTime });
                         }
-
                         if (items[i].Type == 'gpt') {
-                            this.messages.push({ id: items[i].Id, sender: 'ai', text: items[i].Content, avatar: require('../../assets/images/rrlogo.png'), timestamp: items[i].CreateTime });
+                            this.messagesCopy.push({ id: items[i].Id, sender: 'ai', text: items[i].Content, avatar: require('../../assets/images/rrlogo.png'), timestamp: items[i].CreateTime });
                         }
+                    }
+                    if (this.first) {
+                        this.messages = JSON.parse(JSON.stringify(this.messagesCopy))
+                        this.first = false
                     }
                 } else {
 
@@ -314,33 +304,14 @@
 
             })
 
-        },
-        addchat(type, content) {
-            axios.request({
-                url: '/eventkg/AddGptChatContent',
-                method: 'post',
-                data: {
-                    type: type,
-                    content: content
-                },
-            }).then(res => {
-                if (res.data.Check == true) {
-                    this.getChat()
-                } else {
-
-                }
-            }).catch(err => {
-
-            })
         },
         /**
          * 鎻愪氦
          */
-        async submit() {
+        submit() {
+            this.loading = true
             if (this.inputText) {
-                // this.loading = true
-                // this.messages.push({ sender: 'user', text: this.inputText, avatar: require('../../assets/images/gptUser.png'), timestamp: this.getNowTime() });
-                await this.addchat('user', this.inputText)
+                this.messages.push({ sender: 'user', text: this.inputText, avatar: require('../../assets/images/gptUser.png'), timestamp: this.getNowTime() });
                 axios.request({
                     url: '/EventKg/GetChatGPT',
                     method: 'post',
@@ -349,14 +320,14 @@
                     },
                 }).then(res => {
                     if (res.data.Check == true) {
-                        let text = JSON.parse(res.data.Data).choices[0].message.content
-
+                        console.log(res.data.Data.Info);
+                        let text = res.data.Data.Info
                         this.inputText = ''
-                        // this.messages.push({ sender: 'ai', text: text, avatar: require('../../assets/images/rrlogo.png'), timestamp: this.getNowTime() });
-                        this.addchat('gpt', text)
-                        // this.loading = false
+                        this.messages.push({ sender: 'ai', text: text, avatar: require('../../assets/images/rrlogo.png'), timestamp: this.getNowTime() });
+                        this.getChat()
+                        this.loading = false
                     } else {
-                        // this.loading = false
+                        this.loading = false
                     }
                 }).catch(err => {
 
@@ -364,6 +335,7 @@
 
             } else {
                 this.$Message.error('璇疯緭鍏ラ棶棰�')
+                this.loading = false
             }
 
         },
@@ -712,10 +684,36 @@
     padding: 3px;
     margin-top: 5px;
 }
-</style>
-<style>
-#intelligentAssistant .ivu-radio-input {
-    visibility: hidden;
+
+.demo-spin-col .circular {
+    width: 25px;
+    height: 25px;
 }
-</style>
+
+.demo-spin-icon-load {
+    animation: ani-demo-spin 1s linear infinite;
+}
+
+@keyframes ani-demo-spin {
+    from {
+        transform: rotate(0deg);
+    }
+
+    50% {
+        transform: rotate(180deg);
+    }
+
+    to {
+        transform: rotate(360deg);
+    }
+}
+
+.demo-spin-col {
+    height: 100px;
+    position: relative;
+    border: 1px solid #eee;
+}</style>
+<style>#intelligentAssistant .ivu-radio-input {
+    visibility: hidden;
+}</style>
   
\ No newline at end of file
diff --git a/src/view/single-page/home/home.vue b/src/view/single-page/home/home.vue
index 8b9f00d..cf6b1d1 100644
--- a/src/view/single-page/home/home.vue
+++ b/src/view/single-page/home/home.vue
@@ -981,6 +981,7 @@
           height: 20px;
           font-size: 12px;
           line-height: 20px;
+          white-space:nowrap;
           position: relative;
           top: 92px;
         }

--
Gitblit v1.8.0