From bce2806ff494fee3f4681ae4a3b443364b3667b3 Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期二, 06 八月 2024 18:06:45 +0800
Subject: [PATCH] 智能体配置页面修改

---
 src/views/dmx/knowledgeLib/test.vue |  226 ++++++++++++++++++++++----------------------------------
 1 files changed, 90 insertions(+), 136 deletions(-)

diff --git a/src/views/dmx/knowledgeLib/test.vue b/src/views/dmx/knowledgeLib/test.vue
index 4e77077..1064d95 100644
--- a/src/views/dmx/knowledgeLib/test.vue
+++ b/src/views/dmx/knowledgeLib/test.vue
@@ -6,56 +6,48 @@
         <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"  />
             </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"  />
             </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'" 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-space>
             </a-form-item>
-            <a-form-item field="section" :rules="[{match:/section one/,message:'璇烽�夋嫨'}]">
+            <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 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>
                 </div>
               </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>
@@ -71,112 +63,54 @@
 </template>
 
 <script lang="ts" setup>
-import { onMounted ,onBeforeMount, reactive, ref } from "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);
+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 kbid = ref('');
+const modelList = ref({});
+let form = reactive({
+  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 sayHello = () => {
-  Message.info('hello');
+const formatter = (value) => {
+  // return String(Math.round(value / 100))
 };
 
-const handleSubmit = ({values, errors}) => {
-  console.log('values:', values, '\nerrors:', errors)
+const handleSubmit = async ({values, errors}) => {
+  // console.log(props.kbobj, 'props.kbobj');
+  if (!form.question){
+    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 handleBeforeOk = (done) => {
-    formRef.value.validate().then(res => {
-      console.log('form:', form)
-      if (!form.name) {
-        done(false)
-      }else {
-        console.log('璇锋眰鏁版嵁');
-
-      }
-    })
 };
 const handleCancel = () => {
   visible.value = false;
@@ -184,25 +118,45 @@
 
 const handleOpened =(el) => {
   Object.assign(form,{
-    name: '',// 鐢ㄦ埛鍚�
-    nameJoin: '',// 鏄电О
-    post: '',// 宀椾綅
-    txt: '',// 澶囨敞
+
   });
   formRef.value.resetFields();
-  console.log(props.record, 'record');
-  // if(props.edit == 'edit'){
-  //   Object.assign(form,props.record);
-  // }
 }
 
-onBeforeMount(()=>{
+const changekbid = (value) => {
+  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">
@@ -222,8 +176,8 @@
     &-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{
@@ -269,8 +223,8 @@
       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;
     }
   }

--
Gitblit v1.8.0