From 64920403797a80149ac1ba2cd2426ad5db044bec Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期一, 26 八月 2024 14:58:01 +0800
Subject: [PATCH] fix: 修改settings 备注
---
src/views/sessionManager/components/updataFile.vue | 254 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 226 insertions(+), 28 deletions(-)
diff --git a/src/views/sessionManager/components/updataFile.vue b/src/views/sessionManager/components/updataFile.vue
index ec81b7a..47f35bd 100644
--- a/src/views/sessionManager/components/updataFile.vue
+++ b/src/views/sessionManager/components/updataFile.vue
@@ -5,7 +5,6 @@
trigger="click"
position="tl">
<a-button
- :disabled="onFileSelectedLoading"
type="text"
style="border-radius: 24px"
@click="visibleChange"
@@ -32,19 +31,30 @@
ref="uploadRef"
@change="onChange"
multiple
+ :limit="1"
/>
- <div style="width: 100%;margin-top: 10px;display: flex; justify-content: space-between;">
+ <div style="width: 100%;margin-top: 10px;display: flex; justify-content: space-between;" class="upload-wrap">
<div>
<span>瑙f瀽鏂规硶: </span>
- <a-radio-group v-model="parser_id">
- <a-radio
- v-for="item in parser_ids"
- :key="item.value"
- :value="item.value"
- style="margin-right: 10px"
- >{{item.name}}</a-radio>
+ <a-radio-group v-model="parser_id" style="width: 400px;" @change="parserChange">
+ <a-popover title=""
+ v-for="item in filterData"
+ :key="item.value"
+ >
+ <a-radio
+ :value="item.value"
+ style="margin-right: 10px"
+ >{{item.name}}</a-radio>
+ <template #content>
+ <p style="max-width: 300px">{{item.parser_config_str}}</p>
+ </template>
+ </a-popover>
</a-radio-group>
</div>
+ <a-select :style="{width:'100px', margin: '0 10px'}" :default-value="['閫氱敤', '澶氭ā鎬�']" v-model="parser_configs" multiple size="small">
+ <a-option v-for="item in parser_ids" :key="item.value">{{ item.name }}</a-option>
+ </a-select>
+ <p class="config-text">鏇村閰嶇疆</p>
<a-button
:loading="onFileSelectedLoading"
@click="upDataFile"
@@ -65,7 +75,7 @@
import { onMounted, onBeforeMount, reactive, ref, computed, watch } from "vue";
import axios from "axios";
import { Message } from "@arco-design/web-vue";
-import { uploadWithoutKb } from "@/api/session";
+import { addSessionApi, getParseMethodsListApi, getSessionDetailsApi, uploadWithoutKb } from "@/api/session";
const visible = ref(false);
const loading = ref(false);
@@ -74,7 +84,7 @@
const filesBtn = ref(null);
const onFileSelectedLoading = ref(false);
const parser_id = ref("");
-const parser_ids = ref([]);
+const parseridConfig = ref(false);
const uploaditemList = ref([]);
const activeSessionId = ref('');
let kbtenantInfo = reactive({
@@ -83,14 +93,13 @@
img2txt_id: 'qwen-vl-max',
llm_id: 'qwen-plus',
name: 'wanghaos 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',
+ // 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',
+ parser_ids: 'naive:閫氱敤,qa:Q&A,resume:绠�鍘�,manual:璇存槑涔�,table:琛ㄦ牸,paper:澶氭ā鎬�,book:涔︾睄,laws:娉曞緥鏂囦欢,presentation:PPT,picture:鍥剧墖,one:鏁翠綋',
rerank_id: 'BAAI/bge-reranker-v2-m3',
role: 'owner',
tenant_id: '948fc6fa41ab11ef8fb80242ac120004',
parser_idObj: {},
});
-const uploadList = ref([]);
const parser = reactive({
naive: {
"chunk_token_num": 676,
@@ -104,8 +113,104 @@
"random_seed": 1500
}
}, // 鐢ㄦ埛鍚�
+ qa: {
+ "entity_types": [
+ "organization",
+ "person",
+ "location",
+ "event",
+ "time"
+ ],
+ "raptor": {
+ "use_raptor": false
+ }
+ },
+ resume: {},
+ manual: {},
+ table: {},
+ paper: {},
+ book: {},
+ laws: {},
+ presentation: {},
+ picture: {},
+ one: {},
});
+const parser_configs = ref(['閫氱敤', '澶氭ā鎬�']);
+const parser_ids = ref([
+ {
+ name: '閫氱敤',
+ value: 'naive',
+ parser_config: parser.naive,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丒XCEL銆丳PT銆両MAGE銆丳DF銆乀XT'
+ },
+ {
+ name: 'Q&A',
+ value: 'qa',
+ parser_config: parser.qa,
+ parser_config_str: '鏀寔 excel 鍜� csv/txt 鏂囦欢鏍煎紡銆� \n' +
+ '濡傛灉鏂囦欢浠� excel 鏍煎紡锛屽垯搴旂敱涓や釜鍒楃粍鎴� 娌℃湁鏍囬锛氫竴涓彁鍑洪棶棰橈紝鍙︿竴涓敤浜庣瓟妗堬紝 绛旀鍒椾箣鍓嶇殑闂鍒椼�俓n' +
+ '濡傛灉鏂囦欢浠� csv/txt 鏍煎紡涓� 鐢ㄤ綔鍒嗗紑闂鍜岀瓟妗堢殑瀹氱晫绗︺�俓n'
+ },
+ {
+ name: '绠�鍘�',
+ value: 'resume',
+ parser_config: parser.resume,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丳DF銆乀XT'
+ },
+ {
+ name: '璇存槑涔�',
+ value: 'manual',
+ parser_config: parser.manual,
+ parser_config_str: '浠呮敮鎸丳DF'
+ },
+ {
+ name: '琛ㄦ牸',
+ value: 'table',
+ parser_config: parser.table,
+ parser_config_str: '鏀寔EXCEL鍜孋SV/TXT鏍煎紡鏂囥�� \n' +
+ '瀵逛簬 csv 鎴� txt 鏂囦欢锛屽垪涔嬮棿鐨勫垎闅旂涓� TAB锛孿n' +
+ '绗竴琛屽繀椤绘槸鍒楁爣棰樸�俓n'
+ },
+ {
+ name: '澶氭ā鎬�',
+ value: 'paper',
+ parser_config: parser.paper,
+ parser_config_str: '浠呮敮鎸丳DF鏂囦欢'
+ },
+ {
+ name: '涔︾睄',
+ value: 'book',
+ parser_config: parser.book,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丳DF銆乀XT'
+ },
+ {
+ name: '娉曞緥鏂囦欢',
+ value: 'laws',
+ parser_config: parser.laws,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丳DF銆乀XT'
+ },
+ {
+ name: 'PPT',
+ value: 'presentation',
+ parser_config: parser.presentation,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负PDF銆丳PTX'
+ },
+ {
+ name: '鍥剧墖',
+ value: 'picture',
+ parser_config: parser.picture,
+ parser_config_str: '鏀寔鍥惧儚鏂囦欢'
+ },
+ {
+ name: '鏁翠綋',
+ value: 'one',
+ parser_config: parser.one,
+ parser_config_str: '鏀寔鐨勬枃浠舵牸寮忎负DOCX銆丒XCEL銆丳DF銆乀XT'
+ },
+]);
+const parser_idsArr = ref([]);
+const uploadList = ref([]);
const props = defineProps(["sessionId"]);
const emit = defineEmits(["selectFileCallback"]);
const uploadRef = ref();
@@ -114,34 +219,94 @@
return ".word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm,";
});
-const init = () => {
- parser_ids.value = kbtenantInfo.parser_ids.split(",").map((item) => {
- const [value1, value2] = item.split(":");
- return {
- name: value2,
- value: value1
- };
+const filterData = computed(() => {
+ const result = parser_ids.value.filter(val => parser_configs.value.includes(val.name)).reverse().slice(0,4).reverse();
+ result.unshift({
+ name: '鏅鸿兘璇嗗埆',
+ value: '',
+ parser_config_str: '',
+ parser_config: ''
});
+ return result;
+});
+
+const init = () => {
+ // parser_ids.value = kbtenantInfo.parser_ids.split(",").map((item) => {
+ // const [value1, value2] = item.split(":");
+ // return {
+ // name: value2,
+ // value: value1
+ // };
+ // });
+ getParseMethodsList();
}
+
+const chooseParser = (item) => {
+ console.log(item);
+};
const onChange = (fileList) => {
files.value = fileList;
+ files.value.forEach((item) => {
+
+ });
+
};
+const parserChange = ()=>{
+ parseridConfig.value = false;
+}
const visibleChange = (e) => {
e.stopPropagation();
visible.value = !visible.value;
}
-const upDataFile = () => {
+
+const getIconByExtension = (extension) => {
+ const fileExtension = ref('');
+ fileExtension.value = extension.split('.').pop();
+ let type = '';
+ parser_idsArr.value.forEach((item)=>{
+ // 鍖呭惈鍏冪礌
+ if (item.formats.includes(fileExtension.value)){
+ type = item.id;
+ }
+ })
+ return type;
+};
+
+const upDataFile = async () => {
+ // if (!activeSessionId.value) {
+ // //鏂板缓浼氳瘽
+ // const res = await addSessionApi({
+ // dialog_id: '',
+ // conversation_desc: '',
+ // });
+ // // console.log(res, "res");
+ // if (res.code == 200) {
+ // // console.log(res.data.conversation_id);
+ // activeSessionId.value = res.data?.conversation_id;
+ // const { code, data } = await getSessionDetailsApi(res.data?.conversation_id);
+ // if (code === 200) {
+ // console.log(data, '鏂板缓浼氳瘽璇︽儏');
+ // }
+ // } else {
+ // Message.error('鍒涘缓浼氳瘽澶辫触锛岃閲嶈瘯');
+ // }
+ // }
+
+
+
+
console.log(files.value, "files");
console.log(parser_ids.value, "瑙f瀽鏂规硶");
if(files.value.length == 0){
Message.warning('璇烽�夋嫨鏂囦欢');
return;
}
- uploaditemList.value = files.value.map((item)=>{
+ uploaditemList.value = files.value.map((item,index)=>{
return {
+ index: index,
name: item.name,
size: (item.file.size/1024).toFixed(2) + 'K',
}
@@ -151,13 +316,17 @@
for (let i = 0; i < files.value.length; i++) {
formData.append('file', files.value[i].file);
formData.append('conversation_id', activeSessionId.value);
- formData.append('parser_id', parser_id.value);
formData.append('parser_config', '');
+ if(!parser_id.value){
+ formData.append('parser_id', getIconByExtension(files.value[i].name));
+ }else{
+ formData.append('parser_id', parser_id.value);
+ }
}
uploadWithoutKb(formData).then((res) => {
+ onFileSelectedLoading.value = false;
if (res.code == 200) {
- cancel()
- onFileSelectedLoading.value = false;
+ cancel();
// uploaditemList.value = [];
emit('selectFileCallback', uploaditemList.value);
Message.success('涓婁紶鎴愬姛');
@@ -172,12 +341,28 @@
const cancel = () => {
- visible.value = false;
+ if(!onFileSelectedLoading.value){
+ visible.value = false;
+ parser_id.value = "";
+ }
};
defineExpose({
cancel
})
+
+const getParseMethodsList = async () => {
+ let res = await getParseMethodsListApi();
+ parser_ids.value = res.data.map((item) => {
+ return {
+ name: item.name,
+ value: item.id,
+ parser_config: '',
+ parser_config_str: item.parser_config_str
+ };
+ });
+ parser_idsArr.value = res.data;
+}
onBeforeMount(() => {
@@ -198,7 +383,11 @@
</script>
-
+<style>
+.upload-wrap .arco-select-view-inner{
+ display: none;
+}
+</style>
<style scoped lang="less">
.aUpload {
width: 100%;
@@ -206,4 +395,13 @@
overflow: hidden;
overflow-y: auto;
}
+.upload-wrap {
+ position: relative;
+}
+.config-text {
+ position: absolute;
+ right: 70px;
+ bottom: -11px;
+ font-size: 12px;
+}
</style>
--
Gitblit v1.8.0