yinbangzhong
2024-09-12 ff0ae974a1c561eaf2915988dac63cd066af189f
bug fix
4个文件已修改
150 ■■■■■ 已修改文件
src/api/session.ts 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sessionManager/components/historySession.vue 99 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sessionManager/components/updataFile.vue 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/sessionManager/index.vue 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/session.ts
@@ -13,9 +13,15 @@
}
// 会话列表分页
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[]) {
src/views/sessionManager/components/historySession.vue
@@ -32,15 +32,9 @@
      <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">
@@ -82,40 +76,16 @@
  </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' };
@@ -138,54 +108,12 @@
  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) {
@@ -281,6 +209,10 @@
        ...queryPage,
      });
      if (code === 200) {
        if (data.length == 0) {
          isReached.value = true;
          return;
        }
        sessionScrollList.value = data.map((item) => {
          return {
            ...item,
@@ -313,7 +245,6 @@
    console.log(httpUrl, '当前地址');
    EventBus.on('history', () => {
      emit('changeAgentType', '3');
      // DialogList()
      queryPage.page = 1;
      querySessionList('');
    });
src/views/sessionManager/components/updataFile.vue
@@ -196,7 +196,7 @@
  ]);
  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([]);
@@ -365,13 +365,20 @@
  });
  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 {
src/views/sessionManager/index.vue
@@ -363,6 +363,7 @@
                <updataFile
                  ref="fileInput"
                  :sessionId="activeSessionId"
                  :hide="hide_upload"
                  @selectFileCallback="selectFileCallback"
                ></updataFile>
@@ -574,6 +575,7 @@
  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({});
@@ -610,13 +612,16 @@
    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);
    }
  };
@@ -664,6 +669,12 @@
    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 {
@@ -676,6 +687,12 @@
  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) {
@@ -1073,6 +1090,8 @@
  };
  const changeAgentType = (val, session) => {
    hide_upload.value = hide_upload.value+1;
    uploaditemList.value=[];
    agentType.value = val;
    console.log(val, 'val');
  };
@@ -1083,6 +1102,7 @@
    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(); //刷新滚动条位置
@@ -1142,6 +1162,8 @@
    EventBus.on('newChat', () => {
      uploaditemList.value = [];
      agentType.value = '1';
      chatObj = {};
      hide_upload.value = hide_upload.value+1;
      // createSession('');
      activeSessionId.value = '';
      sessionDetailList.value = [