From 98ddf2bd816abe50ac291b5810da753624192167 Mon Sep 17 00:00:00 2001 From: liudong <liudong> Date: 星期四, 08 八月 2024 19:08:50 +0800 Subject: [PATCH] 解析方法页面bug修改 --- src/api/kbList.ts | 4 src/views/dmx/knowledgeLib/tool.vue | 707 ++++++++++++++++++++++++++++++++-------------------------- 2 files changed, 394 insertions(+), 317 deletions(-) diff --git a/src/api/kbList.ts b/src/api/kbList.ts index 54aac25..7c0589b 100644 --- a/src/api/kbList.ts +++ b/src/api/kbList.ts @@ -210,7 +210,9 @@ } - +export function achunkGet(params) { + return axios.get('/api/v1/chunk/get', {params}); +} diff --git a/src/views/dmx/knowledgeLib/tool.vue b/src/views/dmx/knowledgeLib/tool.vue index 883e668..5049ec9 100644 --- a/src/views/dmx/knowledgeLib/tool.vue +++ b/src/views/dmx/knowledgeLib/tool.vue @@ -15,10 +15,13 @@ > <a-tabs default-active-key="1"> <a-tab-pane key="1"> - <template #title> <icon-calendar /> 瑙f瀽鏂规硶 </template> + <template #title> + <icon-calendar /> + 瑙f瀽鏂规硶 + </template> <div style="width: 100%"> <div style="display: flex; align-items: center"> - <div> 瑙f瀽鏂规硶: </div> + <div> 瑙f瀽鏂规硶:</div> <div style="margin-left: 10px"> <a-select v-model="form.parser_id" placeholder="璇烽�夋嫨"> <a-option @@ -38,8 +41,14 @@ auto-label-width @submit="handleSubmit" > - <a-divider style="margin-top: 10px" /> - <a-form-item field="slider" label="鍧桾oken鏁�"> + <a-divider style="margin-top: 10px" + v-if=" + form.parser_id === 'naive'" /> + <a-form-item + field="slider" + label="鍧桾oken鏁�" + v-if=" + form.parser_id === 'naive'"> <a-slider v-model="form.chunk_token_num" :min="0" @@ -47,8 +56,18 @@ show-input /> </a-form-item> - <a-divider style="margin-top: 10px" /> - <a-form-item field="raptor" label="浣跨敤鍙洖澧炲己RAPTOR绛栫暐"> + <a-divider style="margin-top: 10px" + v-if="form.parser_id === 'naive' || + form.parser_id === 'qa'|| + form.parser_id === 'manual' || + form.parser_id === 'laws' || + form.parser_id === 'book'" /> + <a-form-item field="raptor" label="浣跨敤鍙洖澧炲己RAPTOR绛栫暐" + v-if="form.parser_id === 'naive' || + form.parser_id === 'qa'|| + form.parser_id === 'manual' || + form.parser_id === 'laws' || + form.parser_id === 'book'"> <a-space direction="vertical" size="large"> <a-switch v-model="form.use_raptor" @@ -125,7 +144,8 @@ style="margin-left: 10px" type="primary" html-type="submit" - >纭畾</a-button + >纭畾 + </a-button > </div> </a-form-item> @@ -134,7 +154,10 @@ </div> </a-tab-pane> <a-tab-pane key="2"> - <template #title> <icon-clock-circle /> 鍒涘缓瑙f瀽鍧� </template> + <template #title> + <icon-clock-circle /> + 鍒涘缓瑙f瀽鍧� + </template> <div class="details"> <div class="details-header"> <div @@ -158,8 +181,10 @@ type="outline" class="button" style="margin-right: 10px" - >鎵归噺<icon-down style="margin-left: 4px" - /></a-button> + >鎵归噺 + <icon-down style="margin-left: 4px" + /> + </a-button> <template #content> <a-space direction="vertical"> <a-checkbox @@ -246,8 +271,10 @@ type="outline" class="button" style="margin-right: 10px" - ><icon-sort - /></a-button> + > + <icon-sort + /> + </a-button> <template #content> <a-radio-group v-model="available_int" @@ -313,347 +340,395 @@ </template> <script lang="ts" setup> - import { - onMounted, - onBeforeMount, - reactive, - ref, - computed, - watch, - } from 'vue'; - import { Message } from '@arco-design/web-vue'; - import { - kbdocumentchangeparser, - achunkCreate, - queryChunkList, - chunkSwitch, - chunkRm, - } from '@/api/kbList'; - import addDetails from '@/views/dmx/knowledgeLib/addDetails.vue'; - import eidtDetails from '@/views/dmx/knowledgeLib/eidtDetails.vue'; - const visible = ref(false); - const loading = ref(false); - const radio = ref('1'); - const keyBg = ref(''); - const eidtDil = ref(); - const eidtDilVisible = ref(false); - const eidtDilinfo = reactive({}); +import { + onMounted, + onBeforeMount, + reactive, + ref, + computed, + watch +} from "vue"; +import { Message } from "@arco-design/web-vue"; +import { + kbdocumentchangeparser, + achunkCreate, + queryChunkList, + chunkSwitch, + chunkRm, achunkGet +} from "@/api/kbList"; +import addDetails from "@/views/dmx/knowledgeLib/addDetails.vue"; +import eidtDetails from "@/views/dmx/knowledgeLib/eidtDetails.vue"; - const props = defineProps(['kbtenantInfo', 'item', 'kbdetail']); - // const emit = defineEmits(['upTabdateItem']) +const visible = ref(false); +const loading = ref(false); +const radio = ref("1"); +const keyBg = ref(""); +const eidtDil = ref(); +const eidtDilVisible = ref(false); +const eidtDilinfo = reactive({}); - let threshold = computed(() => { - return form.threshold / 100; - }); +const props = defineProps(["kbtenantInfo", "item", "kbdetail"]); +// const emit = defineEmits(['upTabdateItem']) - const kbtenantInfo = props.kbtenantInfo; +let threshold = computed(() => { + return form.threshold / 100; +}); - let parser_ids = kbtenantInfo.parser_ids.split(',').map((item) => { - const [value1, value2] = item.split(':'); - return { - name: value2, - value: value1, - }; - }); +const kbtenantInfo = props.kbtenantInfo; - const isBtn = ref(true); - - const closeSlelct = () => { - window.addEventListener('click', (event) => { - if (!event.target.closest('.space_search') && !isBtn.value) { - isBtn.value = true; - // form.keywords = ''; - } - }); +let parser_ids = kbtenantInfo.parser_ids.split(",").map((item) => { + const [value1, value2] = item.split(":"); + return { + name: value2, + value: value1 }; +}); - watch(isBtn, (val) => { - if (!val) { - closeSlelct(); +// 杩囨护瑙f瀽鏂规硶 + +const filterParserArr = [ + 'naive', + 'qa', + 'resume', + 'manual', + 'book', + 'laws', + 'one', +] + + + + + +const isBtn = ref(true); + +const closeSlelct = () => { + window.addEventListener("click", (event) => { + if (!event.target.closest(".space_search") && !isBtn.value) { + isBtn.value = true; + // form.keywords = ''; } }); +}; - const form = reactive({ - parser_id: props.item.parser_id, - doc_id: props.item.id, - max_token: 698, - threshold: 0.3, - max_cluster: 233, - random_seed: 1500, - chunk_token_num: 128, - use_raptor: false, - keywords: '', - pages: {}, - prompt: - '璇锋�荤粨浠ヤ笅娈佃惤銆� 灏忓績鏁板瓧锛屼笉瑕佺紪閫犮�� 娈佃惤濡備笅锛歕n' + - ' {cluster_content}\n' + - '浠ヤ笂灏辨槸浣犻渶瑕佹�荤粨鐨勫唴瀹广��', - }); - const formRef = ref(null); - const rules = { - prompt: [ - { - required: true, - message: '鎻愮ず璇嶄笉鍏佽涓虹┖', - }, - ], - }; +watch(isBtn, (val) => { + if (!val) { + closeSlelct(); + } +}); - const listData = ref([]); +const form = reactive({ + parser_id: '', + doc_id: props.item.id, + max_token: 698, + threshold: 0.3, + max_cluster: 233, + random_seed: 1500, + chunk_token_num: 128, + use_raptor: false, + keywords: "", + pages: {}, + prompt: + "璇锋�荤粨浠ヤ笅娈佃惤銆� 灏忓績鏁板瓧锛屼笉瑕佺紪閫犮�� 娈佃惤濡備笅锛歕n" + + " {cluster_content}\n" + + "浠ヤ笂灏辨槸浣犻渶瑕佹�荤粨鐨勫唴瀹广��" +}); +const formRef = ref(null); +const rules = { + prompt: [ + { + required: true, + message: "鎻愮ず璇嶄笉鍏佽涓虹┖" + } + ] +}; - const formatter = (value) => { - return value / 100; - }; - function randomNumber() { - // 鐢熸垚涓�涓粙浜巑in鍜宮ax涔嬮棿鐨勯殢鏈烘暣鏁帮紙鍖呭惈min鍜宮ax锛� - const min = 1; // 鏈�灏忓�� - const max = 10000; // 鏈�澶у�� - form.random_seed = Math.floor(Math.random() * (max - min + 1)) + min; +const listData = ref([]); + +const formatter = (value) => { + return value / 100; +}; + +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 = 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 = () => { + visible.value = true; +}; +const handleCancel = () => { + visible.value = false; +}; + +const contentClick = async (item) => { + // Object.assign(eidtDilinfo, item); + // eidtDilVisible.value = true; + try { + const data = await achunkGet({ + chunk_id: item.chunk_id + }); + + console.log(data.data); + } catch (error) { + Message.error("鑾峰彇澶辫触"); } - 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 handleOpened = (el) => { + // console.log('props',props.kbtenantInfo); + console.log('props',props.item); + // console.log('props',props.kbdetail); + console.log(parser_ids, "parser_ids"); + let parser_id = props.item.parser_id; + parser_ids.forEach((item) => { + if (item.name == parser_id) { + form.parser_id = item.value; } - }; + }); - const handleClick = () => { - visible.value = true; - }; - const handleCancel = () => { - visible.value = false; - }; - const contentClick = (item) => { - Object.assign(eidtDilinfo, item); - eidtDilVisible.value = true; - }; - const handleOpened = (el) => { - // 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(); - console.log(props.item.id); - }; + // Object.assign(form,{ + // name: '',// 鐢ㄦ埛鍚� + // nameJoin: '',// 鏄电О + // post: '',// 宀椾綅 + // txt: '',// 澶囨敞 + // }); + // formRef.value.resetFields(); + console.log(props.item.id); +}; - const onChangeRAPTOR = () => {}; +const onChangeRAPTOR = () => { +}; - const indeterminate = ref(false); - const checkedAll = ref(false); - const data = ref([]); - const switchType = ref(false); - const available_int = ref(''); - const onRadioChange = () => { - console.log(radio.value); - }; - //鎵归噺鎿嶄綔 - const handleChangeAll = (value) => { - indeterminate.value = false; - if (value) { - checkedAll.value = true; - listData.value.forEach((item) => { - data.value.push(item.chunk_id); - }); - } else { - checkedAll.value = false; - data.value = []; - } - }; - - const handleChange = (values) => { - data.value = values; - }; - - //鎵归噺鍚敤鍒犻櫎绂佺敤 - const addBlock = (type) => { - if (data.value.length == 0) { - Message.error('璇烽�夋嫨瑕佹搷浣滅殑鏁版嵁'); - return; - } - if (type == 3) { - deleteChunk(); - } else { - let params = { - chunk_ids: data.value, - available_int: type, - doc_id: props.item.id, - }; - chunkSwitch(params).then((res) => { - if (res.code == 0) { - Message.success('鎿嶄綔鎴愬姛'); - getList(); - checkedAll.value = false; - data.value = []; - } else { - Message.error('鎿嶄綔澶辫触'); - } - }); - } - }; - - const groupListContentClick = (value) => { - keyBg.value = value; - }; - - const onChangeavailable = () => { - getList(); - }; - - const handleChangeStatus = (val) => { - updateChunkStatus(val); - }; - const isLoading = ref(true); - // 鑷畾涔夊姞杞芥彁绀烘枃鏈� - const tip = '鍔犺浇涓紝璇风◢鍊�...'; - //鑾峰彇鍒楄〃 - const getList = async () => { - let params = { - doc_id: props.item.id, - keywords: form.keywords, - page: 1, - size: 10000, - }; - if (available_int.value !== '') { - params.available_int = available_int.value; - } - await queryChunkList(params).then((res) => { - if (res.code == 0) { - listData.value = res.data.chunks; - isLoading.value = false; - listData.value = listData.value.map((item) => { - item.available_int = parseInt(item.available_int); - return item; - }); - } +const indeterminate = ref(false); +const checkedAll = ref(false); +const data = ref([]); +const switchType = ref(false); +const available_int = ref(""); +const onRadioChange = () => { + console.log(radio.value); +}; +//鎵归噺鎿嶄綔 +const handleChangeAll = (value) => { + indeterminate.value = false; + if (value) { + checkedAll.value = true; + listData.value.forEach((item) => { + data.value.push(item.chunk_id); }); - }; - //鏇存柊鍒楄〃 - const canplaythrough = () => { - getList(); - }; + } else { + checkedAll.value = false; + data.value = []; + } +}; - //鍚敤绂佺敤 - const updateChunkStatus = (val) => { - let params = { - chunk_ids: [val.chunk_id], - available_int: val.available_int, - doc_id: props.item.id, - }; - chunkSwitch(params).then((res) => { - console.log(res); - if (res.code == 0) { - Message.success('鏇存柊鎴愬姛'); - getList(); - } else { - Message.error('鏇存柊澶辫触'); - } - }); - }; +const handleChange = (values) => { + data.value = values; +}; - //鍒犻櫎 - const deleteChunk = () => { +//鎵归噺鍚敤鍒犻櫎绂佺敤 +const addBlock = (type) => { + if (data.value.length == 0) { + Message.error("璇烽�夋嫨瑕佹搷浣滅殑鏁版嵁"); + return; + } + if (type == 3) { + deleteChunk(); + } else { let params = { chunk_ids: data.value, - doc_id: props.item.id, + available_int: type, + doc_id: props.item.id }; - chunkRm(params).then((res) => { - console.log(res); + chunkSwitch(params).then((res) => { if (res.code == 0) { - Message.success('鍒犻櫎鎴愬姛'); + Message.success("鎿嶄綔鎴愬姛"); getList(); + checkedAll.value = false; + data.value = []; } else { - Message.error('鍒犻櫎澶辫触'); + Message.error("鎿嶄綔澶辫触"); } }); - }; + } +}; - onBeforeMount(() => {}); - onMounted(() => { - getList(); +const groupListContentClick = (value) => { + keyBg.value = value; +}; + +const onChangeavailable = () => { + getList(); +}; + +const handleChangeStatus = (val) => { + updateChunkStatus(val); +}; +const isLoading = ref(true); +// 鑷畾涔夊姞杞芥彁绀烘枃鏈� +const tip = "鍔犺浇涓紝璇风◢鍊�..."; +//鑾峰彇鍒楄〃 +const getList = async () => { + let params = { + doc_id: props.item.id, + keywords: form.keywords, + page: 1, + size: 10000 + }; + if (available_int.value !== "") { + params.available_int = available_int.value; + } + await queryChunkList(params).then((res) => { + if (res.code == 0) { + listData.value = res.data.chunks; + isLoading.value = false; + listData.value = listData.value.map((item) => { + item.available_int = parseInt(item.available_int); + return item; + }); + } }); +}; +//鏇存柊鍒楄〃 +const canplaythrough = () => { + getList(); +}; + +//鍚敤绂佺敤 +const updateChunkStatus = (val) => { + let params = { + chunk_ids: [val.chunk_id], + available_int: val.available_int, + doc_id: props.item.id + }; + chunkSwitch(params).then((res) => { + console.log(res); + if (res.code == 0) { + Message.success("鏇存柊鎴愬姛"); + getList(); + } else { + Message.error("鏇存柊澶辫触"); + } + }); +}; + +//鍒犻櫎 +const deleteChunk = () => { + let params = { + chunk_ids: data.value, + doc_id: props.item.id + }; + chunkRm(params).then((res) => { + console.log(res); + if (res.code == 0) { + Message.success("鍒犻櫎鎴愬姛"); + getList(); + } else { + Message.error("鍒犻櫎澶辫触"); + } + }); +}; + +onBeforeMount(() => { + getList(); +}); +onMounted(() => { + +}); </script> <style scoped lang="less"> - .parser { - width: 100%; - ::v-deep .arco-btn-outline:hover, - .arco-btn-outline, - .arco-btn-outline[type='button'] { - color: #2a2a2b; - border: 1px solid #2a2a2b; - } - .button { - //color: #2a2a2b!important; - } - } - ::-webkit-scrollbar { - display: none; - } - .groupMain { - width: 100%; - height: 500px; - overflow: auto; - display: flex; - justify-content: center; - .groupList { - display: flex; - padding: 24px; - border-radius: 8px; - //background: #eff8ff; - border: 1px solid #f0f0f0; - margin-bottom: 20px; - overflow: auto; - .groupList-content { - width: 700px; - //height: 100px; - overflow: auto; - box-sizing: border-box; - margin: 0; - padding: 0; - color: #2a2a2b; - font-size: 14px; - font-family: Inter; - position: relative; - } - } - } - :deep(.emphaRed em) { - color: red !important; +.parser { + width: 100%; + + ::v-deep .arco-btn-outline:hover, + .arco-btn-outline, + .arco-btn-outline[type='button'] { + color: #2a2a2b; + border: 1px solid #2a2a2b; } - .groupActive { - background: #eff8ff; + .button { + //color: #2a2a2b!important; } - .groupNoActive { - background: var(--color-bg-1); - color: var(--color-text-1); +} + +::-webkit-scrollbar { + display: none; +} + +.groupMain { + width: 100%; + height: 500px; + overflow: auto; + display: flex; + justify-content: center; + + .groupList { + display: flex; + padding: 24px; + border-radius: 8px; + //background: #eff8ff; + border: 1px solid #f0f0f0; + margin-bottom: 20px; + overflow: auto; + + .groupList-content { + width: 700px; + //height: 100px; + overflow: auto; + box-sizing: border-box; + margin: 0; + padding: 0; + color: #2a2a2b; + font-size: 14px; + font-family: Inter; + position: relative; + } } +} + +:deep(.emphaRed em) { + color: red !important; +} + +.groupActive { + background: #eff8ff; +} + +.groupNoActive { + background: var(--color-bg-1); + color: var(--color-text-1); +} </style> -- Gitblit v1.8.0