liudong
2024-08-07 e0219d2121732227922341fb3878e3a4d1b04d9d
src/views/dmx/knowledgeLib/config.vue
@@ -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>-->
@@ -68,9 +68,9 @@
<!--              <a-option value="1">英文</a-option>-->
<!--            </a-select>-->
<!--          </a-form-item>-->
          <a-form-item field="section" label="嵌入模型" :rules="[{match:/section one/,message:'请选择'}]">
          <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 allow-clear>
              <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"
@@ -83,8 +83,8 @@
              </a-select>
            </a-space>
          </a-form-item>
          <a-form-item field="section" label="解析方法" :rules="[{match:/section one/,message:'请选择'}]">
            <a-select v-model="form.parser_id" placeholder="请选择" disabled allow-clear>
          <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-option v-for="item in parser_ids" :key="item.value" :label="item.name" :value="item.value"></a-option>
            </a-select>
          </a-form-item>
@@ -92,13 +92,13 @@
            <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">
              <a-switch v-model="form.layout_recognize"  />
            <a-space direction="vertical">
              <a-switch v-model="form.layout_recognize" size="small" />
            </a-space>
          </a-form-item>
          <a-form-item field="raptor" label="使用召回增强RAPTOR策略">
            <a-space direction="vertical" size="large">
              <a-switch v-model="form.use_raptor" />
            <a-space direction="vertical" >
              <a-switch v-model="form.use_raptor" size="small" />
            </a-space>
          </a-form-item>
          <div v-if="form.use_raptor">
@@ -130,8 +130,8 @@
          <a-form-item>
            <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 @click="$refs.formRef.resetFields()">Reset</a-button>-->
              </a-space>
            </div>
          </a-form-item>
@@ -192,14 +192,14 @@
import { onMounted, onBeforeMount, reactive, ref } from "vue";
import { Message } from "@arco-design/web-vue";
import { queryModelList,kbUpdate } from "@/api/kbList";
import message from "@arco-design/web-vue/es/message";
import useLoading from "@/hooks/loading";
const { loading,setLoading } = useLoading(true);
const props =  defineProps(['kbtenantInfo'])
// const emit =  defineEmits(['upTabdateItem'])
const kbtenantInfo = props.kbtenantInfo;
let parser_ids = kbtenantInfo.parser_ids.split(",").map((item) => {
const emit =  defineEmits(['cancleConfig','saveConfig'])
// 解析方法列表
let parser_ids = props.kbtenantInfo.parser_ids.split(",").map((item) => {
  const [value1, value2] = item.split(":");
  return {
    name: value2,
@@ -216,7 +216,7 @@
  threshold: 0.32,
  max_cluster: 233,
  random_seed: 1500,
  chunk_token_num: 128,
  chunk_token_num: 384,
  use_raptor: false,
  pages: {},
  prompt: "请总结以下段落。 小心数字,不要编造。 段落如下:\n" +
@@ -237,11 +237,26 @@
      message:'知识库名称不允许为空',
    },
  ],
  embd_id: [
    {
      required: true,
      message:'请选择',
    },
  ],
  parser_id: [
    {
      required: true,
      message:'请选择',
    },
  ],
  prompt: [
    {
      required: true,
      message:'提示词不允许为空',
    },
  ],
}
let visible = ref(false);
let loading = ref(false);
const formRef = ref(null);
const modelList = ref({});
const file = ref();
@@ -273,7 +288,6 @@
  if (errors){
    return;
  }
  console.log(form);
  let parms = {
      name: form.name,
      avatar: form.avatar,
@@ -288,7 +302,7 @@
      },
      kb_id: kbObj.id,
   }
   if(form.layout_recognize){
   if(form.use_raptor){
     parms.parser_config.raptor = {
       use_raptor: form.use_raptor,
       prompt: form.prompt,
@@ -298,24 +312,29 @@
       random_seed: form.random_seed,
     };
   }
   try {
    const data = await kbUpdate(parms);
    if(data.code == '0'){
      Message.success("配置成功");
      window.location.reload();
      // window.location.reload();
      emit('saveConfig')
    }
    // visible.value = false;
    // emit('upTabdateItem')
  } catch (err) {
    // you can report use errorHandler or other
    Message.error(err.message);
  }
};
const cancelConfig = () => {
    emit('cancleConfig')
}
function randomNumber() {
  // 生成一个介于min和max之间的随机整数(包含min和max)
@@ -324,14 +343,6 @@
  form.random_seed = Math.floor(Math.random() * (max - min + 1)) + min;
}
const onChangeRAPTOR = () => {
  console.log(form);
};
const handleClick = () => {
  visible.value = true;
};
const handleBeforeOk = (done) => {
  formRef.value.validate().then(res => {
    console.log("form:", form);
@@ -343,10 +354,6 @@
    }
  });
};
const handleCancel = () => {
  visible.value = false;
};
const handleOpened =(el) => {
  Object.assign(form,{
@@ -367,6 +374,7 @@
};
const changekbObj = (value) => {
  formRef.value.resetFields();
  kbObj = value;
  console.log(kbObj, 'kbObj');
  // if(kbObj.avatar){
@@ -375,14 +383,13 @@
  let configObj = {
    name: kbObj.name,
    avatar: kbObj.avatar,
    chunk_token_num: kbObj.parser_config ? kbObj.parser_config.chunk_token_num : 128,
    pages:  kbObj.pages,
    pages:  kbObj.parser_config.pages,
    description: kbObj.description,
    language: "English",
    permission: kbObj.permission,
    embd_id: "BAAI/bge-large-zh-v1.5",
    embd_id: props.kbtenantInfo.embd_id || kbObj.embd_id,
    parser_id: kbObj.parser_id,
    layout_recognize: kbObj.parser_config ? kbObj.parser_config.layout_recognize:false,
    layout_recognize: true,
  }
  let raptor = {}
  if(kbObj.parser_config && kbObj.parser_config.raptor){
@@ -390,11 +397,12 @@
    Object.assign(form,{
      ...configObj,
      ...raptor,
      use_raptor: kbObj.parser_config.raptor.use_raptor,
    });
  }else{
    Object.assign(form,configObj);
  }
  console.log(form,'配置页面表单信息');
}
defineExpose({