From 7b8834f4eddd7aaa0fefadaaeaf92954c114a966 Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期四, 22 八月 2024 11:36:39 +0800
Subject: [PATCH] agent会话修改

---
 src/views/sessionManager/components/agentSession.vue |   91 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 69 insertions(+), 22 deletions(-)

diff --git a/src/views/sessionManager/components/agentSession.vue b/src/views/sessionManager/components/agentSession.vue
index 093bc27..d0ee6a8 100644
--- a/src/views/sessionManager/components/agentSession.vue
+++ b/src/views/sessionManager/components/agentSession.vue
@@ -108,14 +108,14 @@
           >
           </a-textarea>
         </template>
-        <template #actions>
-          <div class="action"
-               @click="stopChat"
-               style="background: var(--color-bg-2);color: var(--color-primary-light-4);" v-if="displayedText != ''">
-            <icon-record-stop />
-            鍋滄鐢熸垚
-          </div>
-        </template>
+<!--        <template #actions>-->
+<!--          <div class="action"-->
+<!--               @click="stopChat"-->
+<!--               style="background: var(&#45;&#45;color-bg-2);color: var(&#45;&#45;color-primary-light-4);" v-if="displayedText != ''">-->
+<!--            <icon-record-stop />-->
+<!--            鍋滄鐢熸垚-->
+<!--          </div>-->
+<!--        </template>-->
       </a-comment>
     </div>
     <!-- <div class="chartStart" v-if="isStart" @click="startChat"
@@ -141,8 +141,8 @@
                   maxRows: 5,
                 }"
       />
-      <div class="btn-send">
-        <!-- <icon-send size="32" /> -->
+      <div style="width: 100%;display: flex;justify-content: space-between">
+        <span></span>
         <a-button
           :disabled="chatDis"
           @click="sentClick"
@@ -154,6 +154,19 @@
         </a-button
         >
       </div>
+<!--      <div class="btn-send">-->
+<!--        &lt;!&ndash; <icon-send size="32" /> &ndash;&gt;-->
+<!--        <a-button-->
+<!--          :disabled="chatDis"-->
+<!--          @click="sentClick"-->
+<!--          type="text"-->
+<!--          style="border-radius: 24px"-->
+<!--          :loading="loading"-->
+<!--        >-->
+<!--          <icon-send size="32" style="color: #0960bd;"/>-->
+<!--        </a-button-->
+<!--        >-->
+<!--      </div>-->
     </div>
     <a-modal v-model:visible="visible" title="淇敼鍚嶇О" @before-open="handleOpened" @cancel="handleCancel" :footer="false" title-align="start">
       <a-form ref="formRef" :rules="rules" :model="agentObj" @submit="handleSubmit" >
@@ -180,7 +193,7 @@
 import { agentResetApi, agentSetApi, getAgentSessionDetailsApi } from "@/api/agentSession";
 import EventBus from '@/utils/EventBus';
 import useClipboard from "vue-clipboard3";
-import { addSessionApi } from "@/api/session";
+import { addSessionApi, getSessionDetailsApi } from "@/api/session";
 const props = defineProps({
   modalObj: Object,
 });
@@ -215,6 +228,8 @@
 });
 
 const visible = ref(false);
+let isHistory = ref(false);//鏄惁鏄巻鍙茶褰�
+let dsl = reactive({});
 
 
 
@@ -229,12 +244,19 @@
 
 const handleSubmit = async({values, errors}) => {
   if(errors) return;
-  agentObj.name = agentTitle.value;
-  const { code, data } = await addSessionApi(agentObj);
+  // agentObj.name = agentTitle.value;
+  // agentObj.conversation_id = agentObj.id;
+  console.log(agentObj, 'agentObj');
+  let chatData = {
+    id:activeSessionId.value,
+    conversation_id:activeSessionId.value,
+    name: agentTitle.value
+  }
+  const { code, data } = await addSessionApi(chatData);
   if (data) {
     Message.success("淇敼鎴愬姛");
     handleCancel()
-    queryAgentSessionDetail(agentObj.id);
+    // queryAgentSessionDetail(agentObj.id);
   }
 }
 
@@ -260,6 +282,7 @@
 
 const createNewAgent = async (session) => {
   Object.assign(agentObj, session);
+  isHistory.value = false;
   initPage();
 
 
@@ -352,6 +375,25 @@
   }
 };
 
+// 鑾峰彇agent浼氳瘽璇︽儏
+const querySessionDetail = async (session) => {
+  Object.assign(agentObj, session);
+  agentObj.id = session.dialog_id;
+  activeSessionId.value = session.id;
+  agentTitle.value = session.name;
+  console.log(agentTitle.value, '浼氳瘽鍚嶇О');
+  const { code, data } = await getSessionDetailsApi(session.id);
+  if (code == 200) {
+    sessionDetailList.value = data.message.messages;
+    const res = await getAgentSessionDetailsApi(session.dialog_id);
+    if (res.code == 0) {
+      console.log(res.data,'浼氳瘽璇︽儏');
+      Object.assign(dsl, res.data.dsl);
+      refreshScroll(); //鍒锋柊婊氬姩鏉′綅缃�
+    }
+  }
+};
+
 
 const { toClipboard } = useClipboard();
 const copy = async (text) => {
@@ -404,13 +446,19 @@
 
 
 const startChat = async(valMsg)=>{
-
   sessionDetailList.value.push({
     content: valMsg,
     role: 'user',
   });
   sessionDetailList.value.push({ role: 'last' });
   refreshScroll();
+  let chatStr = {
+    id: agentObj.id,
+    message: valMsg,
+  }
+  if(isHistory.value){
+    chatStr.dsl = dsl;
+  }
   const response = await fetch(
     '/api/v1/canvas/completion',
     {
@@ -419,10 +467,7 @@
         'Authorization': getAuthorization(),
         'Content-Type': 'application/json',
       },
-      body: JSON.stringify({
-        id: agentObj.id,
-        message: valMsg,
-      }),
+      body: JSON.stringify(chatStr),
     }
   );
 
@@ -466,6 +511,8 @@
   //   Message.success("宸插仠姝�");
   //   queryNewSessionDetail(activeSessionId.value);
   // }
+  loading.value = false;
+  chatDis.value = false;
   isStopChat.value = true;
   console.log('stopChat');
   console.log(displayedText.value, 'displayedText');
@@ -536,8 +583,8 @@
     createNewAgent(data);
   });
   EventBus.on('queryAgentSessionDetail', (data) => {
-    Object.assign(agentObj, data);
-    queryAgentSessionDetail(data.id);
+    isHistory.value = true;
+    querySessionDetail(data);
   });
 });
 onBeforeUnmount(() => {
@@ -665,7 +712,7 @@
 
         .btn-send {
           position: absolute !important;
-          right: 10px;
+          right: 4px;
           top: 80px;
           z-index: 10;
         }

--
Gitblit v1.8.0