From 5e6e726564e5cf1520f95b7f4f13707a39da4bad Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期五, 30 八月 2024 19:43:42 +0800
Subject: [PATCH] fix: 修改bug
---
src/views/dmx/knowledgeLib/config.vue | 232 +++++++++++++++++++++++++++-------------------------------
1 files changed, 108 insertions(+), 124 deletions(-)
diff --git a/src/views/dmx/knowledgeLib/config.vue b/src/views/dmx/knowledgeLib/config.vue
index fe9a7ca..ebec067 100644
--- a/src/views/dmx/knowledgeLib/config.vue
+++ b/src/views/dmx/knowledgeLib/config.vue
@@ -1,5 +1,5 @@
<template>
- <div class="main-container">
+ <div ref="scrollContainer" class="main-container">
<div style="position: absolute;top: 0;left: 0;width: 100%;padding: 0 20px">
<h4 style="margin-bottom: 10px"></h4>
<div style="color: #666666;">鍦ㄨ繖閲屾洿鏂版偍鐨勭煡璇嗗簱璇︾粏淇℃伅锛屽挨鍏舵槸瑙f瀽鏂规硶銆�</div>
@@ -14,49 +14,14 @@
</a-form-item>
<a-form-item field="section" label="鐭ヨ瘑搴撳浘鐗�">
<a-space direction="vertical" :style="{ width: '100%' }">
- <a-upload
- :auto-upload="false"
- :fileList="file ? [file] : []"
- :show-file-list="false"
- @change="onChange"
- @progress="onProgress"
- >
- <template #upload-button>
- <div
- :class="`arco-upload-list-item${
- file && file.status === 'error' ? ' arco-upload-list-item-error' : ''
- }`"
- >
- <div
- class="arco-upload-list-picture custom-upload-avatar"
- v-if="file && file.url"
- >
- <img :src="form.avatar" />
- <div class="arco-upload-list-picture-mask">
- <IconEdit />
- </div>
- <a-progress
- v-if="file.status === 'uploading' && file.percent < 100"
- :percent="file.percent"
- type="circle"
- size="mini"
- :style="{
- position: 'absolute',
- left: '50%',
- top: '50%',
- transform: 'translateX(-50%) translateY(-50%)',
- }"
- />
- </div>
- <div class="arco-upload-picture-card" v-else>
- <div class="arco-upload-picture-card-text">
- <IconPlus />
- <div style="margin-top: 10px; font-weight: 600">涓婁紶</div>
- </div>
- </div>
- </div>
- </template>
- </a-upload>
+ <Upload
+ v-if="avatarShow"
+ :action="uploadAction"
+ :limit="1"
+ :url="form.avatar ? httpUrl + form.avatar : ''"
+ @update:fileList="updateFileList"
+ @success="handleSuccess"
+ ></Upload>
</a-space>
</a-form-item>
<a-form-item field="section" label="鎻忚堪">
@@ -69,22 +34,27 @@
<!-- </a-select>-->
<!-- </a-form-item>-->
<a-form-item field="embd_id" label="宓屽叆妯″瀷">
- <a-space direction="vertical" size="large">
- <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"
- :key='obj.fid'
- :value="obj.llm_name"
- >
- {{obj.llm_name}}
- </a-option>
- </a-optgroup>
- </a-select>
- </a-space>
+ <a-select :size="'large'" v-model="form.embd_id" placeholder="璇烽�夋嫨 ..." :disabled="kbObj.chunk_num && kbObj.token_num">
+ <!-- <a-optgroup :label="index" v-for="(item,index) in mobileData" :key=index>
+ <a-option
+ v-for="(obj) in item"
+ :key='obj.fid'
+ :value="obj.llm_name"
+ >
+ {{obj.llm_name}}
+ </a-option>
+ </a-optgroup> -->
+ <a-option
+ v-for="(item,index) in mobileData"
+ :key='item.name'
+ :value="item.name"
+ >
+ {{item.name}}
+ </a-option>
+ </a-select>
</a-form-item>
<a-form-item field="parser_id" label="瑙f瀽鏂规硶">
- <a-select v-model="form.parser_id" placeholder="璇烽�夋嫨" :disabled="kbObj.chunk_num==0 && kbObj.token_num==0" allow-clear>
+ <a-select v-model="form.parser_id" placeholder="璇烽�夋嫨" :disabled="!!(kbObj.chunk_num && kbObj.token_num)" >
<a-option v-for="item in parser_ids" :key="item.value" :label="item.name" :value="item.value"></a-option>
</a-select>
</a-form-item>
@@ -97,9 +67,7 @@
</a-space>
</a-form-item>
<a-form-item field="raptor" label="浣跨敤鍙洖澧炲己RAPTOR绛栫暐">
- <a-space direction="vertical" >
- <a-switch v-model="form.use_raptor" size="small" />
- </a-space>
+ <a-switch v-model="form.use_raptor" size="small" />
</a-form-item>
<div v-if="form.use_raptor">
<a-form-item field="prompt" label="鎻愮ず璇�">
@@ -131,7 +99,7 @@
<div style="width: 100%;text-align: right">
<a-space>
<a-button @click="cancelConfig">鍙栨秷</a-button>
- <a-button type="primary" html-type="submit">淇濆瓨</a-button>
+ <a-button :loading="loading" type="primary" html-type="submit">淇濆瓨</a-button>
</a-space>
</div>
</a-form-item>
@@ -189,13 +157,13 @@
</template>
<script lang="ts" setup>
-import { onMounted, onBeforeMount, reactive, ref } from "vue";
+import { onMounted, onBeforeMount, reactive, ref, nextTick } from "vue";
import { Message } from "@arco-design/web-vue";
-import { queryModelList,kbUpdate } from "@/api/kbList";
+import { queryModelList,kbUpdate,getKnowledgeBaseModel } from "@/api/kbList";
import message from "@arco-design/web-vue/es/message";
import useLoading from "@/hooks/loading";
const { loading,setLoading } = useLoading(true);
-
+const scrollContainer = ref();
const props = defineProps(['kbtenantInfo'])
const emit = defineEmits(['cancleConfig','saveConfig'])
// 瑙f瀽鏂规硶鍒楄〃
@@ -208,10 +176,11 @@
});
let kbObj = reactive({});
+let avatarShow = ref(true);
const form = reactive({
- name: kbObj.name,
- avatar: '',//
+ name: '',
+ avatar: '',//澶村儚
max_token: 600,
threshold: 0.32,
max_cluster: 233,
@@ -225,8 +194,8 @@
description: "",
language: "English",
permission: "",
- embd_id: "BAAI/bge-large-zh-v1.5",
- parser_id: kbObj.parser_id,
+ embd_id: "",
+ parser_id: '',
layout_recognize: true
});
@@ -257,30 +226,24 @@
],
}
let visible = ref(false);
-const formRef = ref(null);
+const formRef = ref();
const modelList = ref({});
+const mobileData= ref<any>([])
const file = ref();
-const onChange = (_, currentFile) => {
- file.value = currentFile;
- convertImageToBase64(file.value.file).then((result)=>{
- form.avatar = result;
- })
+const uploadAction = '/api/v1/llm/upload'; // 鏇挎崲涓轰綘鐨勪笂浼燗PI
+const fileList = ref([]);
+const imageUrls = ref([]);
+const httpUrl = localStorage.getItem('httpUrl');
+
+const updateFileList = (newFileList) => {
+ fileList.value = newFileList;
+ console.log(newFileList, 88);
};
-function convertImageToBase64(file) {
- return new Promise((resolve, reject) => {
- const reader = new FileReader();
- reader.onloadend = function() {
- resolve(reader.result);
- };
- reader.onerror = reject;
- reader.readAsDataURL(file);
- });
-}
-
-const onProgress = (currentFile) => {
- file.value = currentFile;
+const handleSuccess = (urls) => {
+ imageUrls.value = urls; // 鎷垮埌涓婁紶鐨勫浘鐗囧湴鍧�
+ form.avatar = urls[0];
};
@@ -313,7 +276,7 @@
};
}
try {
-
+ setLoading(true)
const data = await kbUpdate(parms);
if(data.code == '0'){
Message.success("閰嶇疆鎴愬姛");
@@ -321,10 +284,11 @@
emit('saveConfig')
}
- // emit('upTabdateItem')
+ setLoading(false)
} catch (err) {
Message.error(err.message);
+ setLoading(false)
}
@@ -358,14 +322,25 @@
Object.assign(form,{
});
- formRef.value.resetFields();
+ // formRef.value.resetFields();
}
const queryModel = async (params) => {
try {
- const data = await queryModelList(params);
+ const data = await getKnowledgeBaseModel(params);
+ // const res =await queryModelList(params)
// console.log(data.data, '澶фā鍨嬪垪琛�');
modelList.value = data.data
+ for(let key in data.data) {
+ if (data.data.hasOwnProperty(key)) { // 纭繚鏄璞¤嚜鏈夊睘鎬э紝涓嶆槸鍘熷瀷閾句笂鐨勫睘鎬�
+ if(data.data[key].llm.length > 0){
+ mobileData.value= data.data[key].llm.filter(item => item.type == "embedding")
+ }
+ }
+
+ }
+
+
} catch (err) {
// you can report use errorHandler or other
} finally {
@@ -374,37 +349,45 @@
};
const changekbObj = (value) => {
- formRef.value.resetFields();
- kbObj = value;
- console.log(kbObj, 'kbObj');
- if(kbObj.avatar){
- file.value.url = kbObj.avatar
- }else{
- // file.value.url = '';
- }
- let configObj = {
- name: kbObj.name,
- avatar: kbObj.avatar,
- pages: kbObj.parser_config.pages,
- description: kbObj.description,
- language: "English",
- permission: kbObj.permission,
- embd_id: props.kbtenantInfo.embd_id || kbObj.embd_id,
- parser_id: kbObj.parser_id,
- layout_recognize: true,
- }
- let raptor = {}
- if(kbObj.parser_config && kbObj.parser_config.raptor){
- raptor = kbObj.parser_config.raptor;
- Object.assign(form,{
- ...configObj,
- ...raptor,
- use_raptor: kbObj.parser_config.raptor.use_raptor,
- });
- }else{
- Object.assign(form,configObj);
- }
- console.log(form,'閰嶇疆椤甸潰琛ㄥ崟淇℃伅');
+
+ formRef.value.resetFields();
+ nextTick(()=>{
+ kbObj = value;
+ console.log(kbObj, 'kbObj');
+ let configObj = {
+ name: kbObj.name,
+ avatar: kbObj.avatar,
+ pages: kbObj.parser_config.pages,
+ chunk_token_num: kbObj.parser_config.chunk_token_num,
+ description: kbObj.description,
+ language: "English",
+ permission: kbObj.permission,
+ embd_id: kbObj.embd_id || props.kbtenantInfo.embd_id,
+ parser_id: kbObj.parser_id,
+ layout_recognize: true,
+ }
+ let raptor = {}
+ if(kbObj.parser_config && kbObj.parser_config.raptor){
+ raptor = kbObj.parser_config.raptor;
+ Object.assign(form,{
+ ...configObj,
+ ...raptor,
+ use_raptor: kbObj.parser_config.raptor.use_raptor,
+ });
+ }else{
+ Object.assign(form,{
+ ...configObj,
+ use_raptor: false,
+ });
+ }
+ imageUrls.value = [kbObj.avatar];
+ console.log(form,'閰嶇疆椤甸潰琛ㄥ崟淇℃伅');
+ avatarShow.value = false;
+ setTimeout(() => {
+ avatarShow.value = true;
+ },100);
+ scrollContainer.value.scrollTop = 0;
+ })
}
defineExpose({
@@ -413,6 +396,7 @@
onBeforeMount(()=>{
+ setLoading(false)
queryModel({})
})
onMounted(()=>{
@@ -438,7 +422,7 @@
justify-content: space-between;
height: 100%;
overflow: auto;
- //background: #626aea;
+ border-radius: 8px;
background: var(--color-bg-2);
padding-top: 80px;
--
Gitblit v1.8.0