zhangxiao
2024-08-05 f6ba464aa7856b8201e313fe79e651aab34e6509
src/views/dmx/knowledgeLib/test.vue
@@ -1,24 +1,51 @@
<template>
    <div class="main-container">
      <div class="main-container-lf">
        <div class="main-container-lf-top">检索测试</div>
        <div class="main-container-lf-down">
          <div style="color: #999;">最后一步! 成功后,剩下的就交给Infiniflow AI吧。</div>
        <div style="color: #999"
          >最后一步! 成功后,剩下的就交给Infiniflow AI吧。</div
        >
          <a-divider style="margin-top: 10px" />
          <a-form ref="formRef"  :model="form" :style="{width:'100%'}" layout="vertical"  @submit="handleSubmit">
        <a-form
          ref="formRef"
          :model="form"
          :style="{ width: '100%' }"
          layout="vertical"
          @submit="handleSubmit"
        >
            <a-form-item field="similarity_threshold" label="相似度阈值">
              <a-slider v-model="form.similarity_threshold"  />
            </a-form-item>
            <a-form-item field="slider" label="关键字相似度权重" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
          <a-form-item
            field="slider"
            label="关键字相似度权重"
            :rules="[
              { type: 'number', min: 5, message: 'slider is min than 5' },
            ]"
          >
              <a-slider v-model="form.vector_similarity_weight"  />
            </a-form-item>
            <a-form-item field="section" label="Rerank模型" :rules="[{match:/section one/,message:'请选择'}]">
          <a-form-item
            field="section"
            label="Rerank模型"
            :rules="[{ match: /section one/, message: '请选择' }]"
          >
              <a-space direction="vertical" size="large">
                <a-select :size="'large'" v-model="form.rerank_id" :style="{width:'100%'}" placeholder="请选择 ..." allow-clear>
                  <a-optgroup  :label="index" v-for="(item,index) in modelList" :key=index>
              <a-select
                :size="'large'"
                v-model="form.rerank_id"
                :style="{ width: '100%' }"
                placeholder="请选择 ..."
                allow-clear
              >
                <a-optgroup
                  :label="index"
                  v-for="(item, index) in modelList"
                  :key="index"
                >
                    <a-option
                      v-for="(obj) in item"
                    v-for="obj in item"
                      :key="obj.fid"
                      :disabled="!obj.available"
                      :value="obj.llm_name"
@@ -29,14 +56,29 @@
                </a-select>
              </a-space>
            </a-form-item>
            <a-form-item field="slider" label="Top-K" :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
          <a-form-item
            field="slider"
            label="Top-K"
            :rules="[
              { type: 'number', min: 5, message: 'slider is min than 5' },
            ]"
          >
              <a-slider v-model="form.top_k" :min="1" :max="2048" />
            </a-form-item>
            <a-form-item >
              <div class="main-container-form-item-extra">
                <div class="main-container-form-item-extra-top">测试文本</div>
                <div class="main-container-form-item-extra-down">
                  <a-textarea v-model="form.question" style="height: 10rem;border: 1px solid  var(--color-fill-3);border-radius: 4px" placeholder="" allow-clear/>
                <a-textarea
                  v-model="form.question"
                  style="
                    height: 10rem;
                    border: 1px solid var(--color-fill-3);
                    border-radius: 4px;
                  "
                  placeholder=""
                  allow-clear
                />
                </div>
                <div class="main-container-form-item-extra-btn">
                  <a-button type="primary" html-type="submit">测试</a-button>
@@ -63,11 +105,9 @@
</template>
<script lang="ts" setup>
import { onMounted, onBeforeMount, reactive, ref, watch } from "vue";
  import { onMounted, onBeforeMount, reactive, ref, watch } from 'vue';
import { Message } from '@arco-design/web-vue';
import { kbretrievalTest, queryModelList } from "@/api/kbList";
// import { usePinia } from "../../../store";
// const store = usePinia();
  import { kbretrievalTest, queryModelList } from '@/api/kbList';
// const props = defineProps(['kbId'])
// watch(() => props.kbId, (newValue, oldValue) => {
@@ -75,7 +115,6 @@
// },{
//   deep:true,
// });
let visible = ref(false);
let loading = ref(false);
@@ -92,7 +131,6 @@
  vector_similarity_weight: 30,
});
const formatter = (value) => {
  // return String(Math.round(value / 100))
};
@@ -100,34 +138,32 @@
const handleSubmit = async ({values, errors}) => {
  // console.log(props.kbobj, 'props.kbobj');
  if (!form.question){
    return
      return;
  }
  let formObj = {
    ...form,
    kb_id:kbid.value,
  }
    };
  formObj.similarity_threshold = formObj.similarity_threshold/100;
  formObj.vector_similarity_weight = formObj.vector_similarity_weight/100;
   const data = await kbretrievalTest(formObj);
}
  };
const handleClick = () => {
  visible.value = true;
};
const handleCancel = () => {
  visible.value = false;
}
  };
const handleOpened =(el) => {
  Object.assign(form,{
  });
    Object.assign(form, {});
  formRef.value.resetFields();
}
  };
const changekbid = (value) => {
  kbid.value = value;
}
  };
const queryModel = async (params) => {
  try {
@@ -136,37 +172,28 @@
    modelList.value = {
      BAAI: [data.data.BAAI[1]],
      Jina: data.data.Jina,
      youdao: data.data.youdao
        youdao: data.data.youdao,
    };
  } catch (err) {
    // you can report use errorHandler or other
  } finally {
  }
};
defineExpose({
  changekbid
})
    changekbid,
  });
onBeforeMount(()=>{
  queryModel({})
})
onMounted(()=>{
})
    queryModel({});
  });
  onMounted(() => {});
</script>
<script lang="ts">
export default {
  name: 'config',
  methods: {
  }
    methods: {},
};
</script>
<style scoped lang="less">