From e7a44b64dceb984b0bb243bfdcae73edb099e5f1 Mon Sep 17 00:00:00 2001 From: zhangxiao <898441624@qq.com> Date: 星期一, 26 八月 2024 21:04:49 +0800 Subject: [PATCH] agent --- src/views/sessionManager/index.vue | 127 ++++++++++++++++++++++++----------------- 1 files changed, 74 insertions(+), 53 deletions(-) diff --git a/src/views/sessionManager/index.vue b/src/views/sessionManager/index.vue index 94c0d2a..2d252ee 100644 --- a/src/views/sessionManager/index.vue +++ b/src/views/sessionManager/index.vue @@ -87,42 +87,65 @@ <template #avatar> <img class="icon-user-jpg" - src="../../assets/images/icon-chart.png" + src="../../assets/images/icon-picture.png" alt="鏈湴鍥剧墖" /> </template> <template #content> <a-card v-if="isExistTip(sessionDetail.content)"> - <div :class="{ chatItemAnswer: theme === 'light' }" - :style="{backgroundColor: theme === 'light' ? '#ffffff' : '#000000'}" style="border: none;display: inline;" v-for="(item,tipIndex) in tipMatch(sessionDetail)" + <div + :class="{ chatItemAnswer: theme === 'light' }" + :style="{ + backgroundColor: + theme === 'light' ? '#ffffff' : '#000000', + }" + style="border: none; display: inline" + v-for="(item, tipIndex) in tipMatch(sessionDetail)" > <span v-if="tipIndex == 0"> {{ sessionDetail.content.substring(0, item.index) }} - <a-tooltip background-color="#3491FA" :content="getTipContent( - messagenList.reference, - index - )"> - <img style="width: 20px;height: 20px" :src="tipImage" /> + <a-tooltip + background-color="#3491FA" + :content=" + getTipContent(messagenList.reference, index) + " + > + <img + style="width: 20px; height: 20px" + :src="tipImage" + /> </a-tooltip> </span> <span v-else> - {{ sessionDetail.content.substring(item.preIndex+item.item.length, item.index) }} - <a-tooltip background-color="#3491FA" :content="getTipContent( - messagenList.reference, - index - )"> - <img style="width: 20px;height: 20px" :src="tipImage" /> + {{ + sessionDetail.content.substring( + item.preIndex + item.item.length, + item.index + ) + }} + <a-tooltip + background-color="#3491FA" + :content=" + getTipContent(messagenList.reference, index) + " + > + <img + style="width: 20px; height: 20px" + :src="tipImage" + /> </a-tooltip> </span> - </div> </a-card> - <a-card v-else> - <div :class="{ chatItemAnswer: theme === 'light' }" - :style="{ - backgroundColor: - theme === 'light' ? '#ffffff' : '#000000', - }" style="border: none"> + <a-card v-else> + <div + :class="{ chatItemAnswer: theme === 'light' }" + :style="{ + backgroundColor: + theme === 'light' ? '#ffffff' : '#000000', + }" + style="border: none" + > {{ sessionDetail.content }} </div> </a-card> @@ -174,7 +197,7 @@ <template #avatar> <img class="icon-user-jpg" - src="../../assets/images/icon-chart.png" + src="../../assets/images/icon-picture.png" alt="鏈湴鍥剧墖" /> </template> @@ -389,7 +412,7 @@ </div> </template> <script setup lang="ts"> -import { useAppStore, userModelState, useUserStore } from "@/store"; + import { useAppStore, userModelState, useUserStore } from '@/store'; import { computed, nextTick, @@ -419,20 +442,20 @@ sessionListApi, uploadWithoutKb, } from '@/api/session'; -import { getAuthorization } from "@/utils/auth"; -import { queryCanvasList } from "@/api/Agent"; -import { getAgentSessionDetailsApi } from "@/api/agentSession"; -import useClipboard from "vue-clipboard3"; -import pdfImg1 from "@/assets/session/PDF.png"; -import pdfImg2 from "@/assets/session/wps-write.png"; -import pdfImg3 from "@/assets/session/execl.png"; -import pdfImg4 from "@/assets/session/icon-txt.png"; -import pdfImg5 from "@/assets/session/txt.png"; -import tipImage from "@/assets/session/tip.png"; + import { getAuthorization } from '@/utils/auth'; + import { queryCanvasList } from '@/api/Agent'; + import { getAgentSessionDetailsApi } from '@/api/agentSession'; + import useClipboard from 'vue-clipboard3'; + import pdfImg1 from '@/assets/session/PDF.png'; + import pdfImg2 from '@/assets/session/wps-write.png'; + import pdfImg3 from '@/assets/session/execl.png'; + import pdfImg4 from '@/assets/session/icon-txt.png'; + import pdfImg5 from '@/assets/session/txt.png'; + import tipImage from '@/assets/session/tip.png'; -import docx from "@/views/dmx/knowledgeLib/components/docx.vue"; -import excel from "@/views/dmx/knowledgeLib/components/excel.vue"; -import txtPdf from "@/views/dmx/knowledgeLib/components/txtPdf.vue"; + import docx from '@/views/dmx/knowledgeLib/components/docx.vue'; + import excel from '@/views/dmx/knowledgeLib/components/excel.vue'; + import txtPdf from '@/views/dmx/knowledgeLib/components/txtPdf.vue'; // const url = ref('../../assets/session/PDF.png'); @@ -481,8 +504,7 @@ let documenttype = ref('docx'); let previewSrc = ref(''); - -const modelStore = userModelState(); + const modelStore = userModelState(); const httpUrl = modelStore.hrefUrl; const rules = { @@ -509,25 +531,25 @@ } }; let dataItem = []; - const isExistTip=(message:string):boolean=>{ + const isExistTip = (message: string): boolean => { if (/##[0-9]\$\$/.test(message)) { return true; } else { return false; } - } + }; const tipMatch = (session: any): any[] => { //match session.content涓殑##[0-9]$$鐨勭储寮� let indexs: any[] = []; - let preTip=0; + let preTip = 0; session.content.match(/##([0-9]+)\$\$/g)?.map((item) => { let i = session.content.indexOf(item); indexs.push({ index: i, item: item, preIndex: preTip }); preTip = i; }); return indexs; - } + }; const getTxt = (data, role, message, index) => { if (isExistTip(message)) { @@ -543,16 +565,15 @@ }; const getTipContent = (data, index): string => { - let maxSimilarityContent = ""; + let maxSimilarityContent = ''; let i = index / 2 - 1 > 0 ? index / 2 - 1 : 0; let maxSimilarity = 0; data[i].chunks.forEach((chunk) => { - if (chunk.similarity > maxSimilarity) { - maxSimilarity = chunk.similarity; - maxSimilarityContent = chunk.content_with_weight; - } + if (chunk.similarity > maxSimilarity) { + maxSimilarity = chunk.similarity; + maxSimilarityContent = chunk.content_with_weight; } - ); + }); return maxSimilarityContent; }; @@ -623,10 +644,7 @@ const selectFileCallback = (data) => { console.log(data, 'selectFileCallback'); - uploaditemList.value = [ - ...uploaditemList.value, - ...data - ]; + uploaditemList.value = [...uploaditemList.value, ...data]; }; let onFileSelectedLoading = ref(false); @@ -711,6 +729,7 @@ // 鍙戦�� const sentClick = () => { sendMessage('click'); + uploaditemList.value = []; }; // 閲嶆柊鐢熸垚 const reGenerate = () => { @@ -744,7 +763,9 @@ if (res.code == 200) { // console.log(res.data.conversation_id); activeSessionId.value = res.data?.conversation_id; - const { code, data } = await getSessionDetailsApi(res.data?.conversation_id); + const { code, data } = await getSessionDetailsApi( + res.data?.conversation_id + ); if (code === 200) { console.log(data, '鏂板缓浼氳瘽璇︽儏'); Object.assign(chatObj, data); -- Gitblit v1.8.0