From d17d3ac3da20d054223a0b1b31909bd0d9caad4d Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期一, 29 七月 2024 19:48:42 +0800
Subject: [PATCH] 知识库页面解析方法接口调用开发
---
src/views/dmx/knowledgeLib/tool.vue | 146 +++++++++++++++++++++++-------------
src/views/dmx/knowledgeLib/index.vue | 35 +++++++-
2 files changed, 124 insertions(+), 57 deletions(-)
diff --git a/src/views/dmx/knowledgeLib/index.vue b/src/views/dmx/knowledgeLib/index.vue
index b04c3f4..8c3947b 100644
--- a/src/views/dmx/knowledgeLib/index.vue
+++ b/src/views/dmx/knowledgeLib/index.vue
@@ -166,6 +166,9 @@
<template #create_time="{ record }">
<span>{{parseTime(record.create_time)}}</span>
</template>
+<!-- <template #parser_id="{ record }">-->
+<!-- <span>{{ parser_ids[record.parser_id]}}</span>-->
+<!-- </template>-->
<template #status="{ record }">
<a-switch v-model="record.status" checked-value="1" unchecked-value="0" @change="handleChangeStatus(record)"/>
</template>
@@ -210,9 +213,9 @@
</div>
</template>
<template #action="{ record }" >
- <tool/>
+ <tool :kbtenantInfo="kbtenantInfo" :item="record" :kbdetail="kbdetail" />
<edit :item="record" @upTabdateItem="upTabdateItem"/>
- <a-popconfirm :content="t('纭畾鍒犻櫎鍚�')" type="warning" @ok="deleteItem(record)">
+ <a-popconfirm :content="'纭畾鍒犻櫎鍚�'" type="warning" @ok="deleteItem(record)">
<a-button type="text" size="small">
<template #icon>
<icon-delete />
@@ -333,6 +336,20 @@
let detailsShow = ref(false)
let selectedTab = ref(0)
let kbobj = reactive({})
+ let kbdetail = reactive({})
+ let parser_ids = 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鈥榮 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([])
const selectTab = (index,item) => {
@@ -450,11 +467,21 @@
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;
+ return acc;
+ }, {});
+ console.log(parser_ids, 'parser_ids');
+ kbtenantInfo.parser_idObj = parser_ids;
renderData.value = data.data.docs||[];
renderData.value = renderData.value.map((item) => {
return {
...item,
loading: false,
+ parser_id: parser_ids[item.parser_id],
};
});
console.log(renderData.value, 'renderData.value');
@@ -462,11 +489,9 @@
pagination.current = params.page;
pagination.total = data.data.total;
// 鏌ヨ鐭ヨ瘑搴撹鎯�
- const kbdetail = await queryKbdetail({
+ kbdetail = await queryKbdetail({
kb_id:params.kb_id,
});
- // 璇︽儏
- // const kbtenantInfo = await queryKbtenantInfo();
diff --git a/src/views/dmx/knowledgeLib/tool.vue b/src/views/dmx/knowledgeLib/tool.vue
index 50a1a08..3ed8d18 100644
--- a/src/views/dmx/knowledgeLib/tool.vue
+++ b/src/views/dmx/knowledgeLib/tool.vue
@@ -10,6 +10,7 @@
title="瑙f瀽鏂规硶"
@before-open="handleOpened"
@cancel="handleCancel"
+ @opened="handleOpened"
:footer="false"
title-align="start"
width="700px"
@@ -19,56 +20,53 @@
瑙f瀽鏂规硶:
</div>
<div style="margin-left: 10px">
- <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 v-model="form.parser_id" placeholder="璇烽�夋嫨" width="200px">
+ <a-option v-for="item in parser_ids" :key="item.value" :label="item.name" :value="item.value"></a-option>
</a-select>
</div>
</div>
<a-form ref="formRef" :rules="rules" :model="form" auto-label-width @submit="handleSubmit" >
<a-divider style="margin-top: 10px" />
- <a-form-item field="slider" label="鏈�澶oken鏁�"
- :rules="[{type:'number', min:5,message:'slider is min than 5'}]">
- <a-slider v-model="form.section" :max="10" />
- <a-input-number v-model="form.section" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
- placeholder="Please Enter" class="input-demo" :min="10" :max="1000" />
+ <a-form-item field="slider" label="鍧梩oken鏁�"
+ :rules="[{type:'number', min:1,message:'slider is min than 1'}]">
+ <a-slider v-model="form.chunk_token_num" :max="1000" />
+ <a-input-number v-model="form.chunk_token_num" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
+ placeholder="璇疯緭鍏�" class="input-demo" :max="1000" />
</a-form-item>
<a-divider style="margin-top: 10px" />
<a-form-item field="raptor" label="浣跨敤鍙洖澧炲己RAPTOR绛栫暐">
<a-space direction="vertical" size="large">
- <a-switch v-model="form.raptor" @change="onChangeRAPTOR" />
+ <a-switch v-model="form.use_raptor" @change="onChangeRAPTOR" />
</a-space>
</a-form-item>
- <div v-if="form.raptor">
- <a-form-item field="section" label="鎻愮ず璇�">
+ <div v-if="form.use_raptor">
+ <a-form-item field="prompt" label="鎻愮ず璇�">
<a-textarea
v-model="form.prompt"
- style="height: 10rem;border: 1px solid var(--color-fill-3);border-radius: 4px" placeholder=""
- allow-clear />
+ style="height: 10rem;border: 1px solid var(--color-fill-3);border-radius: 4px" placeholder="璇峰~鍐欐彁绀鸿瘝" />
</a-form-item>
<a-form-item field="slider" label="鏈�澶oken鏁�"
:rules="[{type:'number', min:5,message:'slider is min than 5'}]">
- <a-slider v-model="form.score" :max="10" />
- <a-input-number v-model="form.score" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
+ <a-slider v-model="form.max_token" :min="1" :max="1000"/>
+ <a-input-number v-model="form.max_token" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
placeholder="Please Enter" class="input-demo" :min="10" :max="1000" />
</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-input-number v-model="form.score" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
- placeholder="Please Enter" class="input-demo" :min="10" :max="1000" />
+ <a-slider v-model="form.threshold" :max="1" />
+ <a-input-number v-model="form.threshold" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
+ placeholder="Please Enter" class="input-demo" :min="0" :max="1" />
</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-input-number v-model="form.score" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
+ <a-slider v-model="form.max_cluster" :max="1000" />
+ <a-input-number v-model="form.max_cluster" :style="{width:'100px',marginLeft:'2rem',borderRadius:'4px'}"
placeholder="Please Enter" class="input-demo" :min="10" :max="1000" />
</a-form-item>
- <a-form-item field="slider" label="闅忔満绉嶅瓙"
+ <a-form-item field="slider" label="闅忔満绉嶅瓙" v-model="form.random_seed"
:rules="[{type:'number', min:5,message:'slider is min than 5'}]">
- <a-input-number v-model="form.score" :style="{width:'300px',marginRight:'1rem',borderRadius:'4px'}"
+ <a-input-number v-model="form.random_seed" :style="{width:'300px',marginRight:'1rem',borderRadius:'4px'}"
placeholder="璇疯緭鍏�" class="input-demo" :min="10" :max="100" />
- <a-button type="primary" @click="">
+ <a-button type="primary" @click="randomNumber">
<icon-plus />
</a-button>
@@ -87,25 +85,34 @@
<script lang="ts" setup>
import { onMounted ,onBeforeMount, reactive, ref } from "vue";
-
+import { Message } from "@arco-design/web-vue";
+import {kbdocumentchangeparser} from "@/api/kbList";
const visible = ref(false);
const loading = ref(false);
+
+const props = defineProps(['kbtenantInfo','item','kbdetail'])
+// const emit = defineEmits(['upTabdateItem'])
+
+const kbtenantInfo = props.kbtenantInfo;
+
+let parser_ids = kbtenantInfo.parser_ids.split(',').map((item) => {
+ const [value1, value2] = item.split(':');
+ return {
+ name: value2,
+ value: value1,
+ };
+});
+
const form = reactive({
- size: "medium",
- name: "",
- age: undefined,
- section: "0",
- province: "haidian",
- options: [],
- date: "",
- time: "",
- radio: "radio one",
- slider: 5,
- score: 5,
- switch: false,
- multiSelect: ["section one"],
- treeSelect: "",
- raptor: true,
+ parser_id: props.item.parser_id,
+ doc_id: props.item.id,
+ max_token: 698,
+ threshold: 0.32,
+ max_cluster: 233,
+ random_seed: 1500,
+ chunk_token_num: 128,
+ use_raptor: false,
+ pages: {},
prompt: '璇锋�荤粨浠ヤ笅娈佃惤銆� 灏忓績鏁板瓧锛屼笉瑕佺紪閫犮�� 娈佃惤濡備笅锛歕n' +
' {cluster_content}\n' +
'浠ヤ笂灏辨槸浣犻渶瑕佹�荤粨鐨勫唴瀹广��',
@@ -113,17 +120,48 @@
const formRef = ref(null);
const rules = {
- name: [
+ prompt: [
{
required: true,
- message:'鍚嶇О涓嶅厑璁镐负绌�',
+ message:'鎻愮ず璇嶄笉鍏佽涓虹┖',
},
],
}
+ function randomNumber() {
+ // 鐢熸垚涓�涓粙浜巑in鍜宮ax涔嬮棿鐨勯殢鏈烘暣鏁帮紙鍖呭惈min鍜宮ax锛�
+ const min = 1; // 鏈�灏忓��
+ const max = 10000; // 鏈�澶у��
+ form.random_seed = Math.floor(Math.random() * (max - min + 1)) + min;
+ }
-const handleSubmit = ({values, errors}) => {
- console.log('values:', values, '\nerrors:', errors)
+const handleSubmit = async ({values, errors}) => {
+ if(!errors){
+ let data = await kbdocumentchangeparser({
+ parser_id: form.parser_id,
+ doc_id: form.doc_id,
+ parser_config: {
+ raptor: {
+ use_raptor: form.use_raptor,
+ prompt: form.prompt,
+ max_token: form.max_token,
+ threshold: form.threshold,
+ max_cluster: form.max_cluster,
+ random_seed: form.random_seed,
+ },
+ chunk_token_num: form.chunk_token_num,
+ pages: [
+
+ ]
+ }
+ })
+ if(data.code == 0){
+ Message.success('閰嶇疆鎴愬姛');
+ }else{
+ Message.error('閰嶇疆澶辫触');
+ }
+ visible.value = false;
+ }
}
const handleClick = () => {
@@ -145,17 +183,21 @@
}
const handleOpened =(el) => {
- Object.assign(form,{
- name: '',// 鐢ㄦ埛鍚�
- nameJoin: '',// 鏄电О
- post: '',// 宀椾綅
- txt: '',// 澶囨敞
- });
- formRef.value.resetFields();
+ console.log('props',props.kbtenantInfo);
+ console.log('props',props.item);
+ console.log('props',props.kbdetail);
+ console.log(parser_ids, 'parser_ids');
+ // Object.assign(form,{
+ // name: '',// 鐢ㄦ埛鍚�
+ // nameJoin: '',// 鏄电О
+ // post: '',// 宀椾綅
+ // txt: '',// 澶囨敞
+ // });
+ // formRef.value.resetFields();
}
const onChangeRAPTOR = () => {
- console.log(form.raptor);
+
};
onBeforeMount(()=>{
--
Gitblit v1.8.0