From e6666db4911ee0214cc57564ded0cbb9534220a4 Mon Sep 17 00:00:00 2001 From: liudong <liudong> Date: 星期二, 30 七月 2024 15:00:13 +0800 Subject: [PATCH] 知识库页面测试和配置接口调用开发 --- src/views/dmx/knowledgeLib/test.vue | 151 ++++++++++++++++++++++---------------------------- 1 files changed, 66 insertions(+), 85 deletions(-) diff --git a/src/views/dmx/knowledgeLib/test.vue b/src/views/dmx/knowledgeLib/test.vue index 4e77077..f632bc4 100644 --- a/src/views/dmx/knowledgeLib/test.vue +++ b/src/views/dmx/knowledgeLib/test.vue @@ -6,25 +6,37 @@ <div class="main-container-lf-down"> <div style="color: #999;">鏈�鍚庝竴姝ワ紒 鎴愬姛鍚庯紝鍓╀笅鐨勫氨浜ょ粰Infiniflow AI鍚с��</div> <a-divider style="margin-top: 10px" /> - <a-form ref="formRef" :size="form.size" :model="form" :style="{width:'100%'}" layout="vertical" @submit="handleSubmit"> - <a-form-item field="slider" label="鐩镐技搴﹂槇鍊�" :rules="[{type:'number', min:5,message:'slider is min than 5'}]"> - <a-slider v-model="form.slider" :max="10" /> + <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" :format-tooltip="formatter" /> </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.score" :max="10" /> + <a-slider v-model="form.vector_similarity_weight" :format-tooltip="formatter" /> </a-form-item> <a-form-item field="section" label="Rerank妯″瀷" :rules="[{match:/section one/,message:'璇烽�夋嫨'}]"> - <a-select v-model="form.section" placeholder="璇烽�夋嫨" allow-clear> - <a-option value="section one">Section One</a-option> - <a-option value="section two">Section Two</a-option> - <a-option value="section three">Section Three</a-option> - </a-select> + <a-space direction="vertical" size="large"> + <a-select :size="'large'" :default-value="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" + :key=obj.fid + :disabled="!obj.available" + :value="obj.llm_name" + > + {{obj.llm_name}} + </a-option> + </a-optgroup> + </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-slider v-model="form.top_k" :min="1" :max="2048" /> </a-form-item> <a-form-item field="section" :rules="[{match:/section one/,message:'璇烽�夋嫨'}]"> <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 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> @@ -73,95 +85,50 @@ <script lang="ts" setup> import { onMounted ,onBeforeMount, reactive, ref } from "vue"; import { Message } from '@arco-design/web-vue'; +import { kbretrievalTest, queryModelList } from "@/api/kbList"; const props = defineProps({ - record: { + kbobj: { type: Object, default: () => { return {} } } }) - - - - -const visible = ref(false); -const loading = ref(false); +let visible = ref(false); +let loading = ref(false); const formRef = ref(null); - - - -const form = reactive({ - size: 'medium', - name: '', - age: undefined, - section: '', - province: 'haidian', - options: [], - date: '', - time: '', - radio: 'radio one', - slider: 5, - score: 5, - switch: false, - multiSelect: ['section one'], - treeSelect: '' +const modelList = ref({}); +let form = reactive({ + kb_id: props.kbobj.kb_id, + page: 1, + question: '', + rerank_id: '', + similarity_threshold: 20, + size: 10, + top_k: 1024, + vector_similarity_weight: 30, }); -const options = [ - { - value: 'beijing', - label: 'Beijing', - children: [ - { - value: 'chaoyang', - label: 'ChaoYang', - children: [ - { - value: 'datunli', - label: 'Datunli', - }, - ], - }, - { - value: 'haidian', - label: 'Haidian', - }, - { - value: 'dongcheng', - label: 'Dongcheng', - }, - { - value: 'xicheng', - label: 'XiCheng', - }, - ], - }, - { - value: 'shanghai', - label: 'Shanghai', - children: [ - { - value: 'shanghaishi', - label: 'Shanghai', - children: [ - { - value: 'huangpu', - label: 'Huangpu', - }, - ], - }, - ], - }, -]; + + +const formatter = (value) => { + return value / 100 +}; + const sayHello = () => { Message.info('hello'); }; -const handleSubmit = ({values, errors}) => { - console.log('values:', values, '\nerrors:', errors) +const handleSubmit = async ({values, errors}) => { + if (!form.question){ + return + } + form.similarity_threshold = form.similarity_threshold/100; + form.vector_similarity_weight = form.vector_similarity_weight/100; + const data = await kbretrievalTest(form); + console.log(data); } const handleClick = () => { @@ -190,14 +157,28 @@ txt: '',// 澶囨敞 }); formRef.value.resetFields(); - console.log(props.record, 'record'); + // console.log(props.record, 'record'); // if(props.edit == 'edit'){ // Object.assign(form,props.record); // } } +const queryModel = async (params) => { + try { + const data = await queryModelList(params); + console.log(data.data, '澶фā鍨嬪垪琛�'); + modelList.value = { + BAAI: [data.data.BAAI[1]], + Jina: data.data.Jina, + youdao: data.data.youdao + }; + } catch (err) { + // you can report use errorHandler or other + } finally { + } +}; onBeforeMount(()=>{ - + queryModel({}) }) onMounted(()=>{ -- Gitblit v1.8.0