From 31a48e3a3c7d4e37a05ef43fa4b65c84989cc353 Mon Sep 17 00:00:00 2001
From: yinbangzhong <zhongbangyin@126.com>
Date: 星期四, 29 八月 2024 09:26:25 +0800
Subject: [PATCH] select role
---
src/views/dmx/knowledgeLib/test.vue | 424 ++++++++++++++++++++++++++--------------------------
1 files changed, 212 insertions(+), 212 deletions(-)
diff --git a/src/views/dmx/knowledgeLib/test.vue b/src/views/dmx/knowledgeLib/test.vue
index 4e77077..0156658 100644
--- a/src/views/dmx/knowledgeLib/test.vue
+++ b/src/views/dmx/knowledgeLib/test.vue
@@ -1,232 +1,232 @@
-
<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>
- <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-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-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>
+ <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
+ >
+ <a-divider style="margin-top: 10px" />
+ <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"
+ :step="0.01"
+ :min="0"
+ :max="1"
+ />
+ </a-form-item>
+ <a-form-item field="slider" label="鍏抽敭瀛楃浉浼煎害鏉冮噸">
+ <a-slider
+ v-model="form.vector_similarity_weight"
+ :step="0.01"
+ :min="0"
+ :max="1"
+ />
+ </a-form-item>
+ <a-form-item field="section" label="Rerank妯″瀷">
+ <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-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-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/>
- </div>
- <div class="main-container-form-item-extra-btn">
- <a-button type="primary" html-type="submit">娴嬭瘯</a-button>
- </div>
+ </a-space>
+ </a-form-item>
+ <a-form-item field="slider" label="Top-K" v-if="form.rerank_id">
+ <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
+ />
</div>
- </a-form-item>
-<!-- <a-form-item>-->
-<!-- <a-space>-->
-<!-- <a-button html-type="submit">Submit</a-button>-->
-<!-- <a-button @click="$refs.formRef.resetFields()">Reset</a-button>-->
-<!-- </a-space>-->
-<!-- </a-form-item>-->
- </a-form>
- </div>
- </div>
- <div class="main-container-rt">
- <a-collapse style="width: 96%;margin-top: 1rem;margin-left: 2%">
-<!-- <a-collapse-item header="Beijing Toutiao Technology Co., Ltd." key="1">-->
-<!-- <template #extra>-->
-<!-- <icon-copy />-->
-<!-- </template>-->
-<!-- <div>Beijing Toutiao Technology Co., Ltd.</div>-->
-<!-- <div>Beijing Toutiao Technology Co., Ltd.</div>-->
-<!-- </a-collapse-item>-->
-<!-- <a-collapse-item header="Beijing Toutiao Technology Co., Ltd." :key="2">-->
-<!-- <template #extra>-->
-<!-- <a-button type="primary" size="mini" @click.stop="sayHello">hello</a-button>-->
-<!-- </template>-->
-<!-- <div>Beijing Toutiao Technology Co., Ltd.</div>-->
-<!-- <div>Beijing Toutiao Technology Co., Ltd.</div>-->
-<!-- </a-collapse-item>-->
- <a-collapse-item header="0/0 閫夊畾鐨勬枃浠�" key="3">
- <template #extra>
- <a-tag size="small">鍛戒腑鏁�</a-tag>
- <a-tag size="small">鐪嬫硶</a-tag>
- </template>
- <div>
- <a-empty />
+ <div class="main-container-form-item-extra-btn">
+ <a-button
+ :disabled="!form.question"
+ :loading="loading"
+ type="primary"
+ html-type="submit"
+ >娴嬭瘯</a-button
+ >
+ </div>
</div>
- </a-collapse-item>
- </a-collapse>
+ </a-form-item>
+ </a-form>
</div>
</div>
+ <div class="main-container-rt">
+ <a-collapse style="width: 96%; margin-top: 1rem; margin-left: 2%">
+ <a-collapse-item header="0/0 閫夊畾鐨勬枃浠�" key="3">
+ <template #extra>
+ <a-tag size="small">鍛戒腑鏁�</a-tag>
+ <a-tag size="small">鐪嬫硶</a-tag>
+ </template>
+ <div>
+ <a-empty />
+ </div>
+ </a-collapse-item>
+ </a-collapse>
+ </div>
+ </div>
</template>
<script lang="ts" setup>
-import { onMounted ,onBeforeMount, reactive, ref } from "vue";
-import { Message } from '@arco-design/web-vue';
+ import { onMounted, onBeforeMount, reactive, ref, watch } from 'vue';
+ import { Message } from '@arco-design/web-vue';
+ import { kbretrievalTest, queryModelList } from '@/api/kbList';
+ // const props = defineProps(['kbId'])
-const props = defineProps({
- record: {
- type: Object,
- default: () => {
- return {}
- }
- }
-})
+ // watch(() => props.kbId, (newValue, oldValue) => {
+ // console.log('kbId 鍙樺寲浜�', newValue, oldValue);
+ // },{
+ // deep:true,
+ // });
-
-
-
-const visible = ref(false);
-const 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 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 sayHello = () => {
- Message.info('hello');
-};
-
-const handleSubmit = ({values, errors}) => {
- console.log('values:', values, '\nerrors:', errors)
-}
-
-const handleClick = () => {
- visible.value = true;
-};
-const handleBeforeOk = (done) => {
- formRef.value.validate().then(res => {
- console.log('form:', form)
- if (!form.name) {
- done(false)
- }else {
- console.log('璇锋眰鏁版嵁');
-
- }
- })
-};
-const handleCancel = () => {
- visible.value = false;
-}
-
-const handleOpened =(el) => {
- Object.assign(form,{
- name: '',// 鐢ㄦ埛鍚�
- nameJoin: '',// 鏄电О
- post: '',// 宀椾綅
- txt: '',// 澶囨敞
+ let visible = ref(false);
+ let loading = ref(false);
+ const formRef = ref(null);
+ const kbid = ref('');
+ const modelList = ref({});
+ let form = reactive({
+ page: 1,
+ question: '',
+ rerank_id: '',
+ similarity_threshold: 0.2,
+ size: 10,
+ top_k: 1024,
+ vector_similarity_weight: 0.7,
});
- formRef.value.resetFields();
- console.log(props.record, 'record');
- // if(props.edit == 'edit'){
- // Object.assign(form,props.record);
- // }
-}
-onBeforeMount(()=>{
+ const formatter = (value) => {
+ // return String(Math.round(value / 100))
+ };
-})
-onMounted(()=>{
+ const handleSubmit = async ({ values, errors }) => {
+ // console.log(props.kbobj, 'props.kbobj');
+ if (!form.question) {
+ return;
+ }
+ let formObj = {
+ ...form,
+ kb_id: kbid.value,
+ vector_similarity_weight: parseFloat(
+ (1 - form.vector_similarity_weight).toFixed(2)
+ ),
+ };
+ if (!formObj.rerank_id) {
+ delete formObj.top_k;
+ delete formObj.rerank_id;
+ }
+ try {
+ loading.value = true;
+ const data = await kbretrievalTest(formObj);
+ if (data.code == 0) {
+ Message.success('娴嬭瘯鎴愬姛');
+ } else {
+ Message.error('娴嬭瘯澶辫触');
+ }
+ loading.value = false;
+ } catch (err) {
+ Message.error(err.message);
+ loading.value = false;
+ }
+ };
+ const handleClick = () => {
+ visible.value = true;
+ };
+ const handleCancel = () => {
+ visible.value = false;
+ };
-})
+ const handleOpened = (el) => {
+ Object.assign(form, {});
+ formRef.value.resetFields();
+ };
+
+ const changekbid = (value) => {
+ console.log(value, 'kbid鐨剉alue');
+ kbid.value = value;
+ };
+
+ 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 {
+ }
+ };
+
+ defineExpose({
+ changekbid,
+ });
+
+ onBeforeMount(() => {
+ queryModel({});
+ });
+ onMounted(() => {});
</script>
<script lang="ts">
-export default {
- name: 'config',
- methods: {
-
- }
-};
+ export default {
+ name: 'config',
+ methods: {},
+ };
</script>
<style scoped lang="less">
- .main-container{
+ .main-container {
display: flex;
justify-content: space-between;
height: 100%;
- //background: #626aea;
- &-lf{
+ &-lf {
width: 30%;
height: 100%;
- //border: 1px solid #cccccc;
- background: #ffffff;
+ //border: 1px solid var(--color-fill-3);
+ background: var(--color-bg-2);
border-radius: 10px;
- overflow: hidden;
- &-top{
+ overflow: auto;
+ &-top {
width: 100%;
height: 60px;
line-height: 60px;
@@ -234,44 +234,44 @@
color: #ffffff;
text-align: center;
}
- &-down{
+ &-down {
padding: 20px;
width: 100%;
}
}
- &-form-item-extra{
+ &-form-item-extra {
width: 100%;
height: 20rem;
border: 1px solid var(--color-fill-3);
border-radius: 6px;
overflow: hidden;
- &-top{
+ &-top {
width: 100%;
height: 40px;
line-height: 40px;
- border-bottom: 1px solid var(--color-fill-3);
+ border-bottom: 1px solid var(--color-fill-3);
//background: rgb(var(--primary-6));
color: #999999;
text-align: center;
}
- &-down{
+ &-down {
width: 92%;
margin-left: 4%;
margin-top: 30px;
}
- &-btn{
+ &-btn {
width: 96%;
text-align: right;
margin-top: 1rem;
}
}
- &-rt{
+ &-rt {
width: 69%;
height: 100%;
//background: #626aea;
- //border: 1px solid #cccccc;
- background: #ffffff;
+ //border: 1px solid var(--color-fill-3);
+ background: var(--color-bg-2);
border-radius: 10px;
}
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.8.0