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