liudong
2024-08-07 9f8024586cf4b4531cf9ef18634080420a8df24c
src/views/dmx/knowledgeLib/config.vue
@@ -1,7 +1,7 @@
<template>
  <div class="main-container">
    <div style="position: absolute;top: 0;left: 0;width: 100%;padding: 0 20px">
      <h4 style="margin-bottom: 10px">配置</h4>
      <h4 style="margin-bottom: 10px"></h4>
      <div style="color: #666666;">在这里更新您的知识库详细信息,尤其是解析方法。</div>
      <a-divider style="margin-top: 20px" />
    </div>
@@ -60,7 +60,7 @@
            </a-space>
          </a-form-item>
          <a-form-item field="section" label="描述">
            <a-textarea placeholder="" allow-clear />
            <a-textarea placeholder=""  v-model="form.description" allow-clear />
          </a-form-item>
<!--          <a-form-item field="section" label="语言" :rules="[{match:/section one/,message:'请选择'}]">-->
<!--            <a-select v-model="form.section" placeholder="请选择" allow-clear>-->
@@ -89,7 +89,7 @@
            </a-select>
          </a-form-item>
          <a-form-item field="slider" label="块Token数">
            <a-slider v-model="form.chunk_token_num" :max="100"  show-input />
            <a-slider v-model="form.chunk_token_num" :min="0" :max="2048"  show-input />
          </a-form-item>
          <a-form-item  label="布局识别" >
            <a-space direction="vertical" size="large">
@@ -98,7 +98,7 @@
          </a-form-item>
          <a-form-item field="raptor" label="使用召回增强RAPTOR策略">
            <a-space direction="vertical" size="large">
              <a-switch v-model="form.use_raptor" @change="onChangeRAPTOR" />
              <a-switch v-model="form.use_raptor" />
            </a-space>
          </a-form-item>
          <div v-if="form.use_raptor">
@@ -107,19 +107,16 @@
                v-model="form.prompt"
                style="height: 10rem;border: 1px solid  var(--color-fill-3);border-radius: 4px" placeholder="请填写提示词"  />
            </a-form-item>
            <a-form-item field="slider" label="最大token数"
                         :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
              <a-slider v-model="form.max_token" :min="1" :max="1000" show-input/>
            <a-form-item field="slider" label="最大token数">
              <a-slider v-model="form.max_token" :min="0" :max="2048" show-input/>
            </a-form-item>
            <a-form-item field="slider" label="阈值" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
              <a-slider v-model="form.threshold"  show-tooltip show-input/>
            <a-form-item field="slider" label="阈值" >
              <a-slider v-model="form.threshold"  :step="0.01" :min="0" :max="1"  show-input/>
            </a-form-item>
            <a-form-item field="slider" label="最大聚类数"
                         :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
              <a-slider v-model="form.max_cluster" :max="1000" show-input/>
            <a-form-item field="slider" label="最大聚类数">
              <a-slider v-model="form.max_cluster" :min="1" :max="1024" show-input/>
            </a-form-item>
            <a-form-item field="slider" label="随机种子" v-model="form.random_seed"
                         :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
            <a-form-item field="slider" label="随机种子" v-model="form.random_seed">
              <a-input-number v-model="form.random_seed" :style="{width:'300px',marginRight:'1rem',borderRadius:'4px'}"
                              placeholder="请输入" class="input-demo" :min="10" :max="100" />
              <a-button type="primary" @click="randomNumber">
@@ -197,7 +194,7 @@
import { queryModelList,kbUpdate } from "@/api/kbList";
const props =  defineProps(['kbtenantInfo','kbobj'])
const props =  defineProps(['kbtenantInfo'])
// const emit =  defineEmits(['upTabdateItem'])
const kbtenantInfo = props.kbtenantInfo;
@@ -210,10 +207,12 @@
  };
});
let kbObj = reactive({});
const form = reactive({
  name: props.kbobj.name,
  name: kbObj.name,
  avatar: '',//
  max_token: 698,
  max_token: 600,
  threshold: 0.32,
  max_cluster: 233,
  random_seed: 1500,
@@ -227,7 +226,7 @@
  language: "English",
  permission: "",
  embd_id: "BAAI/bge-large-zh-v1.5",
  parser_id: props.kbobj.parser_id,
  parser_id: kbObj.parser_id,
  layout_recognize: true
});
@@ -248,11 +247,23 @@
const file = ref();
const onChange = (_, currentFile) => {
  file.value = {
    ...currentFile
    // url: URL.createObjectURL(currentFile.file),
  };
  file.value = currentFile;
  convertImageToBase64(file.value.file).then((result)=>{
    form.avatar = result;
  })
};
function convertImageToBase64(file) {
  return new Promise((resolve, reject) => {
    const reader = new FileReader();
    reader.onloadend = function() {
      resolve(reader.result);
    };
    reader.onerror = reject;
    reader.readAsDataURL(file);
  });
}
const onProgress = (currentFile) => {
  file.value = currentFile;
};
@@ -275,7 +286,7 @@
        chunk_token_num: form.chunk_token_num,
        layout_recognize: form.layout_recognize,
      },
      kb_id: props.kbobj.id,
      kb_id: kbObj.id,
   }
   if(form.layout_recognize){
     parms.parser_config.raptor = {
@@ -290,10 +301,15 @@
   try {
    const data = await kbUpdate(parms);
    Message.success("配置成功");
    if(data.code == '0'){
      Message.success("配置成功");
      window.location.reload();
    }
    // visible.value = false;
    // emit('upTabdateItem')
  } catch (err) {
    // you can report use errorHandler or other
  }
@@ -342,7 +358,7 @@
const queryModel = async (params) => {
  try {
    const data = await queryModelList(params);
    console.log(data.data, '大模型列表');
    // console.log(data.data, '大模型列表');
    modelList.value = data.data
  } catch (err) {
    // you can report use errorHandler or other
@@ -350,6 +366,43 @@
  }
};
const changekbObj = (value) => {
  kbObj = value;
  console.log(kbObj, 'kbObj');
  // if(kbObj.avatar){
  //   file.value.url = kbObj.avatar
  // }
  let configObj = {
    name: kbObj.name,
    avatar: kbObj.avatar,
    chunk_token_num: kbObj.parser_config ? kbObj.parser_config.chunk_token_num : 128,
    pages:  kbObj.pages,
    description: kbObj.description,
    language: "English",
    permission: kbObj.permission,
    embd_id: "BAAI/bge-large-zh-v1.5",
    parser_id: kbObj.parser_id,
    layout_recognize: kbObj.parser_config ? kbObj.parser_config.layout_recognize:false,
  }
  let raptor = {}
  if(kbObj.parser_config && kbObj.parser_config.raptor){
    raptor = kbObj.parser_config.raptor;
    Object.assign(form,{
      ...configObj,
      ...raptor,
    });
  }else{
    Object.assign(form,configObj);
  }
}
defineExpose({
  changekbObj
})
onBeforeMount(()=>{
  queryModel({})
})
@@ -377,7 +430,7 @@
  height: 100%;
  overflow: auto;
  //background: #626aea;
  background: #ffffff;
  background: var(--color-bg-2);
  padding-top: 80px;
  &-lf {
@@ -385,7 +438,7 @@
    //height: 100%;
    //border: 1px solid #cccccc;
    border-radius: 10px;
    //border: 1px solid var(--color-fill-3);
    &-top {
      width: 100%;
      height: 60px;
@@ -438,10 +491,10 @@
    border-radius: 10px;
    overflow: hidden;
    padding: 20px;
    section {
      width: 100%;
      color: #333333;
      //color: #333333;
      color: var(--color-text-1);
    }
  }
}