From b02e3f1dbb7cf930bd1ff319de9e188fd6b5dff7 Mon Sep 17 00:00:00 2001 From: wizardchen Date: Mon, 23 Mar 2026 19:21:46 +0800 Subject: [PATCH] feat(knowledge): implement knowledge item rebuild confirmation dialog and enhance chunk processing options - Added a confirmation dialog for rebuilding knowledge items in the KnowledgeBase component. - Introduced new state variables to manage the rebuild process and item selection. - Enhanced the processChunks function to support question generation options based on configuration. - Updated the knowledge service to handle question generation settings during document processing. --- .../src/views/knowledge/KnowledgeBase.vue | 45 ++++++++++++++++--- internal/application/service/knowledge.go | 23 +++++++++- 2 files changed, 59 insertions(+), 9 deletions(-) diff --git a/frontend/src/views/knowledge/KnowledgeBase.vue b/frontend/src/views/knowledge/KnowledgeBase.vue index f78c8fb5..67789f63 100644 --- a/frontend/src/views/knowledge/KnowledgeBase.vue +++ b/frontend/src/views/knowledge/KnowledgeBase.vue @@ -167,6 +167,8 @@ const onVisibleChange = (visible: boolean) => { let isCardDetails = ref(false); let timeout: ReturnType | null = null; let delDialog = ref(false) +let rebuildDialog = ref(false) +let rebuildKnowledgeItem = ref({ id: '', parse_status: '' }) let knowledge = ref({ id: '', parse_status: '' }) let knowledgeIndex = ref(-1) let knowledgeScroll = ref() @@ -1299,7 +1301,7 @@ const handleManualEdit = (index: number, item: KnowledgeCard) => { }); }; -const handleKnowledgeReparse = async (index: number, item: KnowledgeCard) => { +const handleKnowledgeReparse = (index: number, item: KnowledgeCard) => { if (isFAQ.value) return; if (!canEdit.value) return; if (!item?.id) { @@ -1313,10 +1315,14 @@ const handleKnowledgeReparse = async (index: number, item: KnowledgeCard) => { if (cardList.value[index]) { cardList.value[index].isMore = false; } - const confirm = window.confirm( - t('knowledgeBase.rebuildConfirm', { fileName: item.file_name || item.title || '' }) as string, - ); - if (!confirm) return; + rebuildKnowledgeItem.value = item; + rebuildDialog.value = true; +}; + +const rebuildConfirm = async () => { + rebuildDialog.value = false; + const item = rebuildKnowledgeItem.value; + if (!item?.id) return; try { await reparseKnowledge(item.id); MessagePlugin.success(t('knowledgeBase.rebuildSubmitted')); @@ -1736,7 +1742,7 @@ async function createNewSession(value: string): Promise { @click.stop="openMore(index)" :class="[moreIndex == index ? 'active-more' : '']" > - +