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/largeModel/gpt.vue | 216 ++++++++++++++++++++++++++---------------------------
1 files changed, 107 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
--
Gitblit v1.8.0