| | |
| | | } |
| | | // 会话列表分页 |
| | | export function sessionListApiPage(data) { |
| | | if (data?.searchParam) { |
| | | return axios.get<ISessionListResult>( |
| | | `/api/conversation/list?modeltype=localragflow&dialogid=&page=${data.page}&per_page=${data.page_size}`, |
| | | `/api/conversation/list?modeltype=localragflow&search=${data.searchParam}&dialogid=&page=${data.page}&per_page=${data.page_size}` |
| | | ); |
| | | } else { |
| | | return axios.get<ISessionListResult>( |
| | | `/api/conversation/list?modeltype=localragflow&dialogid=&page=${data.page}&per_page=${data.page_size}` |
| | | ); |
| | | } |
| | | } |
| | | // 删除会话 |
| | | export function deleteSessionApi(conversation_ids: string[]) { |
| | |
| | | <div class="historyTitle___F_iam">历史会话</div> |
| | | |
| | | <div class="search"> |
| | | <!-- 查询框--> |
| | | <div class="search-box"> |
| | | <icon-search /> |
| | | <a-input |
| | | placeholder="搜索历史会话" |
| | | v-model="searchValue" |
| | | style="width: 90%" |
| | | /> |
| | | </div> |
| | | <a-input-search @change="querySessionList('')" v-model="searchValue" class="search-box" placeholder="按下Enter键,搜索会话名称"> |
| | | |
| | | </a-input-search> |
| | | </div> |
| | | |
| | | <div class="historyCenter"> |
| | |
| | | </div> |
| | | </template> |
| | | <script setup lang="ts"> |
| | | import { |
| | | IconClose, |
| | | IconSearch, |
| | | IconTiktokColor, |
| | | } from '@arco-design/web-vue/es/icon'; |
| | | import { useAppStore, useUserStore } from '@/store'; |
| | | import { |
| | | computed, |
| | | nextTick, |
| | | onMounted, |
| | | watch, |
| | | reactive, |
| | | ref, |
| | | onBeforeMount, |
| | | onBeforeUnmount, |
| | | } from 'vue'; |
| | | import { IconClose, IconSearch } from "@arco-design/web-vue/es/icon"; |
| | | import { nextTick, onBeforeMount, onBeforeUnmount, onMounted, reactive, ref } from "vue"; |
| | | |
| | | import { Message, Modal } from '@arco-design/web-vue'; |
| | | import EventBus from '@/utils/EventBus'; |
| | | import moment from 'moment'; |
| | | import { |
| | | addSessionApi, |
| | | chatApi, |
| | | getDialogListApi, |
| | | getSessionDetailsApi, |
| | | deleteSessionApi, |
| | | sessionListApiPage, |
| | | } from '@/api/session'; |
| | | import { Message, Modal } from "@arco-design/web-vue"; |
| | | import EventBus from "@/utils/EventBus"; |
| | | import moment from "moment"; |
| | | import { deleteSessionApi, sessionListApiPage } from "@/api/session"; |
| | | import logo from "@/assets/images/model.png"; |
| | | |
| | | import { queryCanvasList } from '@/api/Agent'; |
| | | const emit = defineEmits(['querySessionDetail', 'changeAgentType']); |
| | | import logo from '@/assets/images/model.png'; |
| | | import { deleteKnow } from '@/api/kbList'; |
| | | import { getAgentSessionDetailsApi } from '@/api/agentSession'; |
| | | const sessionList = ref([]); //会话列表 |
| | | const activeSessionId = ref(''); |
| | | const fieldNames = { value: 'id', label: 'name' }; |
| | |
| | | let sessionScrollList = ref([]); |
| | | let isReached = ref(true); |
| | | |
| | | const DialogList = async () => { |
| | | const { code, data } = await getDialogListApi(); |
| | | if (code === 200) { |
| | | if (data) { |
| | | selectValue.value = data[0].id; |
| | | dialogs.value = data.map((item) => { |
| | | return { |
| | | ...item, |
| | | type: 1, //智能体 |
| | | }; |
| | | }); |
| | | // console.log(data, "dialogs"); |
| | | queryCanvas(); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | const queryCanvas = async (params = {}) => { |
| | | try { |
| | | const { data } = await queryCanvasList(params); |
| | | console.log(data, 'agent'); |
| | | agentList.value = data.map((item) => { |
| | | return { |
| | | ...item, |
| | | name: item.title, |
| | | type: 2, //agent |
| | | }; |
| | | }); |
| | | // 合并数组 |
| | | dialogs.value = dialogs.value.concat(agentList.value); |
| | | |
| | | // 判断当前是智能体或agent |
| | | // console.log(val, 'val'); |
| | | // if (dialogs.value.length > 0) { |
| | | // dialogChange(dialogs.value[0].id); |
| | | // } |
| | | //新建会话 |
| | | querySessionList(dialogs.value[0].id); |
| | | } catch (err) { |
| | | // you can report use errorHandler or other |
| | | } finally { |
| | | } |
| | | }; |
| | | |
| | | // 查询会话列表 |
| | | const querySessionList = async (id) => { |
| | | const { code, data } = await sessionListApiPage({ |
| | | dialog_id: id, |
| | | searchParam: searchValue.value, |
| | | ...queryPage, |
| | | }); |
| | | if (code === 200) { |
| | |
| | | ...queryPage, |
| | | }); |
| | | if (code === 200) { |
| | | if (data.length == 0) { |
| | | isReached.value = true; |
| | | return; |
| | | } |
| | | sessionScrollList.value = data.map((item) => { |
| | | return { |
| | | ...item, |
| | |
| | | console.log(httpUrl, '当前地址'); |
| | | EventBus.on('history', () => { |
| | | emit('changeAgentType', '3'); |
| | | // DialogList() |
| | | queryPage.page = 1; |
| | | querySessionList(''); |
| | | }); |
| | |
| | | ]); |
| | | const parser_idsArr = ref([]); |
| | | const uploadList = ref([]); |
| | | const props = defineProps(['sessionId']); |
| | | const props = defineProps(['sessionId','hide']); |
| | | const emit = defineEmits(['selectFileCallback']); |
| | | const uploadRef = ref(); |
| | | const files = ref([]); |
| | |
| | | }); |
| | | onMounted(() => {}); |
| | | |
| | | //监控多个属性变化 |
| | | watch( |
| | | () => props.sessionId, |
| | | (value) => { |
| | | |
| | | activeSessionId.value = value; |
| | | () => [props.sessionId, props.hide], |
| | | ([in_sessionId, in_hide]) => { |
| | | if (visible.value != in_hide) { |
| | | visible.value = false; |
| | | } |
| | | if (activeSessionId.value != in_sessionId) { |
| | | activeSessionId.value = in_sessionId; |
| | | } |
| | | } |
| | | ); |
| | | |
| | | |
| | | </script> |
| | | <style> |
| | | .upload-wrap .arco-select-view-inner { |
| | |
| | | <updataFile |
| | | ref="fileInput" |
| | | :sessionId="activeSessionId" |
| | | :hide="hide_upload" |
| | | @selectFileCallback="selectFileCallback" |
| | | ></updataFile> |
| | | |
| | |
| | | const streamStr = ref(''); |
| | | const inputMsg = ref(''); |
| | | const activeSessionId = ref(''); |
| | | const hide_upload=ref(2); |
| | | const fieldNames = { value: 'id', label: 'name' }; |
| | | const dialogs = ref([]); |
| | | const dialogObj = reactive({}); |
| | |
| | | if (errors) return; |
| | | let chatData = { |
| | | id: chatObj.id, |
| | | conversation_id: chatObj.id, |
| | | name: from.name, |
| | | dialog_id: chatObj.dialog_id, |
| | | conversation_desc: from.name, |
| | | }; |
| | | const { code, data } = await addSessionApi(chatData); |
| | | if (data) { |
| | | Message.success('修改成功'); |
| | | handleCancel(); |
| | | if (data?.id) { |
| | | activeSessionId.value = data.id; |
| | | } |
| | | queryNewSessionDetail(activeSessionId.value); |
| | | } |
| | | }; |
| | |
| | | if (isExistTip(message)) { |
| | | if (role == 'assistant' && index) { |
| | | let i = index / 2 - 1 > 0 ? index / 2 - 1 : 0; |
| | | if (data.length == 1) { |
| | | i = 0; |
| | | } |
| | | if (data.length == i) { |
| | | i = data.length-1; |
| | | } |
| | | dataItem = data[i].doc_aggs; |
| | | } |
| | | } else { |
| | |
| | | const getTipContent = (data, index): string => { |
| | | let maxSimilarityContent = ''; |
| | | let i = index / 2 - 1 > 0 ? index / 2 - 1 : 0; |
| | | if (data.length == 1) { |
| | | i = 0; |
| | | } |
| | | if (data.length == i) { |
| | | i = data.length-1; |
| | | } |
| | | let maxSimilarity = 0; |
| | | data[i].chunks.forEach((chunk) => { |
| | | if (chunk.similarity > maxSimilarity) { |
| | |
| | | }; |
| | | |
| | | const changeAgentType = (val, session) => { |
| | | hide_upload.value = hide_upload.value+1; |
| | | uploaditemList.value=[]; |
| | | agentType.value = val; |
| | | console.log(val, 'val'); |
| | | }; |
| | |
| | | from.name = session.name; |
| | | const { code, data } = await getSessionDetailsApi(session.id); |
| | | if (code === 200) { |
| | | Object.assign(chatObj, data); |
| | | sessionDetailList.value = data.message; |
| | | messagenList.value = data; |
| | | refreshScroll(); //刷新滚动条位置 |
| | |
| | | EventBus.on('newChat', () => { |
| | | uploaditemList.value = []; |
| | | agentType.value = '1'; |
| | | chatObj = {}; |
| | | hide_upload.value = hide_upload.value+1; |
| | | // createSession(''); |
| | | activeSessionId.value = ''; |
| | | sessionDetailList.value = [ |