瀏覽代碼

Merge branch 'master' of http://192.168.5.5:10010/r/web/flow_web

zhangxiao 2 年之前
父節點
當前提交
b0825070ef

+ 1 - 1
src/views/dmx/IntelligentAgent/components/agentConfig.vue

@@ -344,7 +344,7 @@ const form = reactive({
   rerank_id:'',
   top_k:1024,
 });
-const height = ref('calc(100vh - 520px)');
+const height = ref('calc(500px)');
 const props = defineProps(['typeAngint', 'formData']);
 const emit = defineEmits(['queryList']);
 const columns = [

+ 3 - 18
src/views/dmx/knowledgeLib/addKnow.vue

@@ -26,12 +26,8 @@ import { kbcreate } from "@/api/kbList";
 import { Message } from '@arco-design/web-vue';
 
 const visible = ref(false);
-const loading = ref(false);
 const form = reactive({
   name: '',// 用户名
-  nameJoin: '',// 昵称
-  post: '',// 岗位
-  txt: '',// 备注
 });
 const formRef = ref(null);
 
@@ -45,7 +41,7 @@ const rules = {
 }
 
 
-const emit =  defineEmits(['knowledgeData'])
+const emit =  defineEmits(['getknowledge','getKbdetail'])
 
 const handleSubmit = async({values, errors}) => {
   if(errors) return;
@@ -55,7 +51,8 @@ const handleSubmit = async({values, errors}) => {
     if(data.code == 0){
       visible.value = false;
       Message.success('创建成功');
-      emit("knowledgeData");
+      // emit('getKbdetail',data.data.kb_id);
+      emit("getknowledge",data.data.kb_id);
     }
 }
 
@@ -80,9 +77,6 @@ const handleCancel = () => {
 const handleOpened =(el) => {
   Object.assign(form,{
     name: '',// 用户名
-    nameJoin: '',// 昵称
-    post: '',// 岗位
-    txt: '',// 备注
   });
   formRef.value.resetFields();
 }
@@ -94,13 +88,4 @@ onMounted(()=>{
 
 
 })
-</script>
-
-<script lang="ts">
-export default {
-  name: 'add',
-  methods: {
-
-  }
-};
 </script>

+ 6 - 7
src/views/dmx/knowledgeLib/config.vue

@@ -68,9 +68,9 @@
 <!--              <a-option value="1">英文</a-option>-->
 <!--            </a-select>-->
 <!--          </a-form-item>-->
-          <a-form-item field="section" label="嵌入模型" :rules="[{match:/section one/,message:'请选择'}]">
+          <a-form-item field="section" label="嵌入模型">
             <a-space direction="vertical" size="large">
-              <a-select :size="'large'" v-model="form.embd_id" :style="{width:'100%'}" placeholder="请选择 ..." disabled allow-clear>
+              <a-select :size="'large'" v-model="form.embd_id" :style="{width:'100%'}" placeholder="请选择 ..." :disabled="kbObj.chunk_num>0 || kbObj.token_num>0" allow-clear>
                 <a-optgroup  :label="index" v-for="(item,index) in modelList" :key=index>
                   <a-option
                     v-for="(obj) in item"
@@ -83,8 +83,8 @@
               </a-select>
             </a-space>
           </a-form-item>
-          <a-form-item field="section" label="解析方法" :rules="[{match:/section one/,message:'请选择'}]">
-            <a-select v-model="form.parser_id" placeholder="请选择" disabled allow-clear>
+          <a-form-item field="parser_id" label="解析方法">
+            <a-select v-model="form.parser_id" placeholder="请选择" :disabled="kbObj.chunk_num>0 || kbObj.token_num>0" allow-clear>
               <a-option v-for="item in parser_ids" :key="item.value" :label="item.name" :value="item.value"></a-option>
             </a-select>
           </a-form-item>
@@ -196,9 +196,8 @@ import { queryModelList,kbUpdate } from "@/api/kbList";
 
 const props =  defineProps(['kbtenantInfo'])
 // const emit =  defineEmits(['upTabdateItem'])
-
 const kbtenantInfo = props.kbtenantInfo;
-
+// 解析方法列表
 let parser_ids = kbtenantInfo.parser_ids.split(",").map((item) => {
   const [value1, value2] = item.split(":");
   return {
@@ -305,7 +304,7 @@ const handleSubmit = async ({ values, errors }) => {
     const data = await kbUpdate(parms);
     if(data.code == '0'){
       Message.success("配置成功");
-      window.location.reload();
+      // window.location.reload();
     }
     // visible.value = false;
     // emit('upTabdateItem')

+ 65 - 24
src/views/dmx/knowledgeLib/index.vue

@@ -8,7 +8,7 @@
             :placeholder="$t('cardList.searchInput.placeholder')"
             style="width: 130px;"
           />
-          <addKnow @knowledgeData="knowledgeData"></addKnow>
+          <addKnow @getknowledge="getknowledge" @getKbdetail="getKbdetail"></addKnow>
         </div>
         <div class="lf-container-down">
           <a-scrollbar style="height:56rem;overflow: auto;">
@@ -32,8 +32,8 @@
           </a-scrollbar>
           </div>
       </div>
-      <div class="rt-container">
-        <a-tabs default-active-key="1">
+      <div class="rt-container" v-if="tabs.length > 0">
+        <a-tabs :activeKey="activeKey" @change="handleTabChange">
           <a-tab-pane key="1" :title= "t('dmx.list.DataSet')">
             <div class="rt-container-main">
               <a-card  ref="account" class="general-card" title="" style="padding-top: 20px">
@@ -54,7 +54,7 @@
                             @change="search"
                           />
                           <!--新建-->
-                          <span v-if="tabs.length > 0">
+                          <span>
                             <add :kbobj="kbobj" @changeFetchData="changeFetchData"/>
                           </span>
                         </a-col>
@@ -359,6 +359,7 @@ import {
   const size = ref<SizeProps>('medium');
   let visible = ref(false)
   let keywords = ref('')
+  let activeKey = ref('1')
   let detailsShow = ref(false)
   let selectedTab = ref(0)
   let testForm = ref(null)
@@ -371,15 +372,15 @@ import {
   let parser_ids = reactive({})
   let seeObj = reactive({})
   let kbtenantInfo = reactive({
-    "asr_id": "paraformer-realtime-8k-v1",
-    "embd_id": "BAAI/bge-large-zh-v1.5",
-    "img2txt_id": "qwen-vl-max",
-    "llm_id": "qwen-plus",
-    "name": "wanghao‘s Kingdom",
-    "parser_ids": "naive:General,qa:Q&A,resume:Resume,manual:Manual,table:Table,paper:Paper,book:Book,laws:Laws,presentation:Presentation,picture:Picture,one:One",
-    "rerank_id": "BAAI/bge-reranker-v2-m3",
-    "role": "owner",
-    "tenant_id": "948fc6fa41ab11ef8fb80242ac120004",
+    asr_id: "paraformer-realtime-8k-v1",
+    embd_id: "BAAI/bge-large-zh-v1.5",
+    img2txt_id: "qwen-vl-max",
+    llm_id: "qwen-plus",
+    name: "wanghao‘s Kingdom",
+    parser_ids: "naive:General,qa:Q&A,resume:Resume,manual:Manual,table:Table,paper:Paper,book:Book,laws:Laws,presentation:Presentation,picture:Picture,one:One",
+    rerank_id: "BAAI/bge-reranker-v2-m3",
+    role: "owner",
+    tenant_id: "948fc6fa41ab11ef8fb80242ac120004",
     parser_idObj:{}
   })
   let tabs = ref([])
@@ -389,13 +390,12 @@ import {
     // console.log(item.id);
     kbobj= item;
     kbId = kbobj.id;
-    testForm.value.changekbid(kbId);
-    configForm.value.changekbObj(kbobj);
     fetchData({
       kb_id: kbobj.id,
       page: 1,
       page_size: 20
     })
+    getKbdetail(kbobj.id)
   }
 
   const basePagination: Pagination = {
@@ -502,8 +502,6 @@ import {
       const  data  = await queryKbDocumentList(params);
       console.log(data, 'data');
       if(data.code=='0'){
-        //   详情
-        // const  kbtenantInfo  = await queryKbtenantInfo();
         parser_ids = kbtenantInfo.parser_ids.split(',').reduce((acc, pair) => {
           const [key, value] = pair.split(':');
           acc[key] = value;
@@ -523,10 +521,6 @@ import {
 
         pagination.current = params.page;
         pagination.total = data.data.total;
-        //   查询知识库详情
-        // kbdetail  = await queryKbdetail({
-        //   kb_id:params.kb_id,
-        // });
 
       }
     } catch (err) {
@@ -565,13 +559,15 @@ import {
       if(tabs.value.length>0 && tabs.value[0]){
         kbobj = tabs.value[0]
         kbId = kbobj.id;
-        testForm.value.changekbid(kbId);
-        configForm.value.changekbObj(kbobj);
+        activeKey.value = '1';
         fetchData({
           kb_id: kbobj.id,
           page: 1,
           page_size: 20
         })
+        getKbdetail(kbobj.id)
+      }else{
+
       }
       // renderData.value = data.list;
       // console.log(renderData, 'renderData');
@@ -584,6 +580,47 @@ import {
     }
   };
 
+
+  const getKbdetail = async (kb_id) => {
+    //   查询知识库详情
+    const data = await queryKbdetail({
+      kb_id:kb_id,
+    });
+    kbdetail = data.data;
+    testForm.value.changekbid(kbdetail.id);
+    configForm.value.changekbObj(kbdetail);
+  };
+
+
+
+
+const getknowledge = async (id) => {
+  setLoading(true);
+  try {
+    const { data } = await queryKbList({ page: 1, page_size: 20 });
+    console.log(data, '查询知识库列表');
+    tabs.value = data;
+    if(tabs.value.length>0){
+      // 定位到新增的知识库单元
+      selectedTab.value = tabs.value.findIndex(item=>item.id==id);
+      getKbdetail(id) // 获取详情
+      activeKey.value = '3';
+      //   详情
+      // const  kbtenantInfo  = await queryKbtenantInfo();
+    }
+
+
+
+
+
+
+  } catch (err) {
+    // you can report use errorHandler or other
+  } finally {
+    setLoading(false);
+  }
+};
+
   const deleteKnowledge = async (id) => {
     let data = await deleteKnow({
       kb_id:id
@@ -596,7 +633,11 @@ import {
   const reset = () => {
     formModel.value = generateFormModel();
   };
-
+  function handleTabChange(key: string) {
+    // 处理标签改变事件
+    console.log('Changed to tab:', key);
+    activeKey.value=key;
+  }
   const handleSelectDensity = (
     val: string | number | Record<string, any> | undefined,
     e: Event

+ 11 - 5
src/views/dmx/knowledgeLib/test.vue

@@ -29,7 +29,7 @@
                 </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" v-if="form.rerank_id === 'Jina' || form.rerank_id === 'BAAI'">
               <a-slider v-model="form.top_k" :min="1" :max="2048" />
             </a-form-item>
             <a-form-item >
@@ -39,7 +39,7 @@
                   <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>
+                  <a-button :disabled="!form.question" type="primary" html-type="submit">测试</a-button>
                 </div>
               </div>
             </a-form-item>
@@ -87,7 +87,7 @@ let form = reactive({
   similarity_threshold: 0.2,
   size: 10,
   top_k: 1024,
-  vector_similarity_weight: 0.3,
+  vector_similarity_weight: 0.7,
 });
 
 
@@ -103,8 +103,13 @@ const handleSubmit = async ({values, errors}) => {
   let formObj = {
     ...form,
     kb_id:kbid.value,
+    vector_similarity_weight:(1 - form.vector_similarity_weight).toFixed(2),
   }
-   const data = await kbretrievalTest(formObj);
+  if(!formObj.rerank_id){
+    delete formObj.top_k;
+    delete formObj.rerank_id;
+  }
+  const data = await kbretrievalTest(formObj);
 }
 
 const handleClick = () => {
@@ -122,13 +127,14 @@ const handleOpened =(el) => {
 }
 
 const changekbid = (value) => {
+  console.log(value, 'kbid的value');
   kbid.value = value;
 }
 
 const queryModel = async (params) => {
   try {
     const data = await queryModelList(params);
-    console.log(data.data, '大模型列表');
+    // console.log(data.data, '大模型列表');
     modelList.value = {
       BAAI: [data.data.BAAI[1]],
       Jina: data.data.Jina,

+ 2 - 2
src/views/session/sessionRecordsManager/index.vue

@@ -142,7 +142,7 @@
                 avatar="https://p1-arco.byteimg.com/tos-cn-i-uwbnlip3yd/3ee5f13fb09879ecb5185e440cef6eb9.png~tplv-uwbnlip3yd-webp.webp"
               >
                 <template #content>
-                  <div :class="{ light: theme === 'light' }">{{
+                  <div>{{
                       sessionDetail.content
                     }}
                   </div>
@@ -174,7 +174,7 @@
                     auto-size
                     v-model="displayedText"
                     class="chat-item-answer"
-                    style="background-color: rgba(63, 64, 79, 1)"
+                    style="background-color:rgba(192,172,172,0.88)"
                   >
                   </a-textarea>
                 </template>