liudong
2024-08-12 c257fb1d2238aae76331ad4d1ad8cfe667493718
src/views/dmx/knowledgeLib/config.vue
@@ -1,5 +1,5 @@
<template>
  <div class="main-container">
  <div ref="scrollContainer" class="main-container">
    <div style="position: absolute;top: 0;left: 0;width: 100%;padding: 0 20px">
      <h4 style="margin-bottom: 10px"></h4>
      <div style="color: #666666;">在这里更新您的知识库详细信息,尤其是解析方法。</div>
@@ -18,7 +18,7 @@
                v-if="avatarShow"
                :action="uploadAction"
                :limit="1"
                :url="form.avatar"
                :url="form.avatar ? httpUrl + form.avatar : ''"
                @update:fileList="updateFileList"
                @success="handleSuccess"
              ></Upload>
@@ -34,22 +34,20 @@
<!--            </a-select>-->
<!--          </a-form-item>-->
          <a-form-item field="embd_id" label="嵌入模型">
            <a-space direction="vertical" size="large">
              <a-select :size="'large'" v-model="form.embd_id" :style="{width:'100%'}" placeholder="请选择 ..." :disabled="kbObj.chunk_num==0 && kbObj.token_num==0" allow-clear>
                <a-optgroup  :label="index" v-for="(item,index) in modelList" :key=index>
                  <a-option
                    v-for="(obj) in item"
                    :key='obj.fid'
                    :value="obj.llm_name"
                  >
                    {{obj.llm_name}}
                  </a-option>
                </a-optgroup>
              </a-select>
            </a-space>
            <a-select :size="'large'" v-model="form.embd_id" placeholder="请选择 ..." :disabled="kbObj.chunk_num==0 && kbObj.token_num==0">
              <a-optgroup  :label="index" v-for="(item,index) in modelList" :key=index>
                <a-option
                  v-for="(obj) in item"
                  :key='obj.fid'
                  :value="obj.llm_name"
                >
                  {{obj.llm_name}}
                </a-option>
              </a-optgroup>
            </a-select>
          </a-form-item>
          <a-form-item field="parser_id" label="解析方法">
            <a-select v-model="form.parser_id" placeholder="请选择" :disabled="kbObj.chunk_num==0 && kbObj.token_num==0" allow-clear>
            <a-select v-model="form.parser_id" placeholder="请选择" :disabled="kbObj.chunk_num==0 && kbObj.token_num==0" >
              <a-option v-for="item in parser_ids" :key="item.value" :label="item.name" :value="item.value"></a-option>
            </a-select>
          </a-form-item>
@@ -62,9 +60,7 @@
            </a-space>
          </a-form-item>
          <a-form-item field="raptor" label="使用召回增强RAPTOR策略">
            <a-space direction="vertical" >
              <a-switch v-model="form.use_raptor" size="small" />
            </a-space>
            <a-switch v-model="form.use_raptor" size="small" />
          </a-form-item>
          <div v-if="form.use_raptor">
            <a-form-item field="prompt" label="提示词">
@@ -96,7 +92,7 @@
            <div style="width: 100%;text-align: right">
              <a-space>
                <a-button @click="cancelConfig">取消</a-button>
                <a-button type="primary" html-type="submit">保存</a-button>
                <a-button :loading="loading" type="primary" html-type="submit">保存</a-button>
              </a-space>
            </div>
          </a-form-item>
@@ -160,7 +156,7 @@
import message from "@arco-design/web-vue/es/message";
import useLoading from "@/hooks/loading";
const { loading,setLoading } = useLoading(true);
const scrollContainer = ref();
const props =  defineProps(['kbtenantInfo'])
const emit =  defineEmits(['cancleConfig','saveConfig'])
// 解析方法列表
@@ -230,6 +226,7 @@
const uploadAction = '/api/v1/llm/upload'; // 替换为你的上传API
const fileList = ref([]);
const imageUrls = ref([]);
const httpUrl = localStorage.getItem('httpUrl');
const updateFileList = (newFileList) => {
  fileList.value = newFileList;
@@ -271,7 +268,7 @@
     };
   }
   try {
     setLoading(true)
    const data = await kbUpdate(parms);
    if(data.code == '0'){
      Message.success("配置成功");
@@ -279,10 +276,11 @@
      emit('saveConfig')
    }
    // emit('upTabdateItem')
    setLoading(false)
  } catch (err) {
    Message.error(err.message);
     setLoading(false)
  }
@@ -337,7 +335,9 @@
  console.log(kbObj, 'kbObj');
  let configObj = {
    name: kbObj.name,
    avatar: kbObj.avatar,
    pages:  kbObj.parser_config.pages,
    chunk_token_num:  kbObj.parser_config.chunk_token_num,
    description: kbObj.description,
    language: "English",
    permission: kbObj.permission,
@@ -359,13 +359,14 @@
      use_raptor: false,
    });
  }
  form.avatar = kbObj.avatar;
  imageUrls.value = [kbObj.avatar];
  console.log(form,'配置页面表单信息');
  avatarShow.value = false;
  setTimeout(() => {
    avatarShow.value = true;
  },100);
  scrollContainer.value.scrollTop = 0;
}
defineExpose({
@@ -374,6 +375,7 @@
onBeforeMount(()=>{
  setLoading(false)
  queryModel({})
})
onMounted(()=>{
@@ -399,7 +401,7 @@
  justify-content: space-between;
  height: 100%;
  overflow: auto;
  //background: #626aea;
  border-radius: 8px;
  background: var(--color-bg-2);
  padding-top: 80px;