diff --git a/src/lib/helpers/http.js b/src/lib/helpers/http.js index 4e763d9d..637703d2 100644 --- a/src/lib/helpers/http.js +++ b/src/lib/helpers/http.js @@ -69,6 +69,8 @@ function skipLoader(config) { const deleteRegexes = [ new RegExp('http(s*)://(.*?)/knowledge/vector/(.*?)/delete-collection', 'g'), + new RegExp('http(s*)://(.*?)/knowledge/vector/(.*?)/data/(.*?)', 'g'), + new RegExp('http(s*)://(.*?)/knowledge/vector/(.*?)/data', 'g'), ]; const getRegexes = [ @@ -81,15 +83,15 @@ function skipLoader(config) { new RegExp('http(s*)://(.*?)/knowledge/vector/collections', 'g') ]; - if (config.method === 'post' && !!config.data && postRegexes.some(regex => regex.test(config.url || ''))) { + if (config.method === 'post' && postRegexes.some(regex => regex.test(config.url || ''))) { return true; } - if (config.method === 'put' && !!config.data && putRegexes.some(regex => regex.test(config.url || ''))) { + if (config.method === 'put' && putRegexes.some(regex => regex.test(config.url || ''))) { return true; } - if (config.method === 'delete' && !!config.data && deleteRegexes.some(regex => regex.test(config.url || ''))) { + if (config.method === 'delete' && deleteRegexes.some(regex => regex.test(config.url || ''))) { return true; } diff --git a/src/lib/services/api-endpoints.js b/src/lib/services/api-endpoints.js index 3cd2beb1..caf7b191 100644 --- a/src/lib/services/api-endpoints.js +++ b/src/lib/services/api-endpoints.js @@ -65,6 +65,7 @@ export const endpoints = { vectorKnowledgeCreateUrl: `${host}/knowledge/vector/{collection}/create`, vectorKnowledgeUpdateUrl: `${host}/knowledge/vector/{collection}/update`, vectorKnowledgeDeleteUrl: `${host}/knowledge/vector/{collection}/data/{id}`, + vectorKnowledgeDeleteAllUrl: `${host}/knowledge/vector/{collection}/data`, vectorKnowledgeUploadUrl: `${host}/knowledge/vector/{collection}/upload`, vectorCollectionCreateUrl: `${host}/knowledge/vector/create-collection`, vectorCollectionDeleteUrl: `${host}/knowledge/vector/{collection}/delete-collection`, diff --git a/src/lib/services/knowledge-base-service.js b/src/lib/services/knowledge-base-service.js index 25c38e6f..624d5a29 100644 --- a/src/lib/services/knowledge-base-service.js +++ b/src/lib/services/knowledge-base-service.js @@ -1,4 +1,3 @@ -import { VectorDataSource } from '$lib/helpers/enums.js'; import { replaceUrl } from '$lib/helpers/http.js'; import { endpoints } from './api-endpoints.js'; import axios from 'axios'; @@ -111,6 +110,19 @@ export async function deleteVectorKnowledgeData(id, collection) { return response.data; } +/** + * @param {string} collection + * @returns {Promise} + */ +export async function deleteAllVectorKnowledgeData(collection) { + const url = replaceUrl(endpoints.vectorKnowledgeDeleteAllUrl, { + collection: collection + }); + + const response = await axios.delete(url); + return response.data; +} + /** * @param {string} collection * @param {import('$knowledgeTypes').VectorKnowledgeUploadRequest} request diff --git a/src/routes/page/knowledge-base/documents/+page.svelte b/src/routes/page/knowledge-base/documents/+page.svelte index 937501b2..2ce082f9 100644 --- a/src/routes/page/knowledge-base/documents/+page.svelte +++ b/src/routes/page/knowledge-base/documents/+page.svelte @@ -20,7 +20,8 @@ updateVectorKnowledgeData, deleteVectorCollection, deleteVectorKnowledgeData, - createVectorCollection + deleteAllVectorKnowledgeData, + createVectorCollection, } from '$lib/services/knowledge-base-service'; import Breadcrumb from '$lib/common/Breadcrumb.svelte'; import HeadTitle from '$lib/common/HeadTitle.svelte'; @@ -409,6 +410,42 @@ isOpenEditKnowledge = true; } + function onKnowledgeDeleteAll() { + Swal.fire({ + title: 'Are you sure?', + text: `Are you sure you want to delete all data in collection "${selectedCollection}"?`, + icon: 'warning', + customClass: { confirmButton: 'danger-background' }, + showCancelButton: true, + cancelButtonText: 'No', + confirmButtonText: 'Yes', + }).then(async (result) => { + if (result.value) { + isLoading = true; + deleteAllVectorKnowledgeData(selectedCollection).then(res => { + if (res) { + successText = "All data has been deleted!"; + isComplete = true; + setTimeout(() => { + isComplete = false; + }, duration); + reset(true); + } else { + throw 'Error when deleting all data'; + } + }).catch(() => { + errorText = "Failed to delete all data." + isError = true; + setTimeout(() => { + isError = false; + }, duration); + }).finally(() => { + isLoading = false; + }); + } + }); + } + function toggleKnowledgeEditModal() { isOpenEditKnowledge = !isOpenEditKnowledge; if (!isOpenEditKnowledge) { @@ -774,7 +811,7 @@
-
+
{$_('Knowledges')}
@@ -789,6 +826,19 @@ on:click={() => onKnowledgeCreate()} > + +
+
+
diff --git a/src/routes/page/knowledge-base/question-answer/+page.svelte b/src/routes/page/knowledge-base/question-answer/+page.svelte index 5db58ff5..c2cef28f 100644 --- a/src/routes/page/knowledge-base/question-answer/+page.svelte +++ b/src/routes/page/knowledge-base/question-answer/+page.svelte @@ -20,6 +20,7 @@ updateVectorKnowledgeData, deleteVectorCollection, deleteVectorKnowledgeData, + deleteAllVectorKnowledgeData, createVectorCollection } from '$lib/services/knowledge-base-service'; import Breadcrumb from '$lib/common/Breadcrumb.svelte'; @@ -398,6 +399,42 @@ isOpenEditKnowledge = true; } + function onKnowledgeDeleteAll() { + Swal.fire({ + title: 'Are you sure?', + text: `Are you sure you want to delete all data in collection "${selectedCollection}"?`, + icon: 'warning', + customClass: { confirmButton: 'danger-background' }, + showCancelButton: true, + cancelButtonText: 'No', + confirmButtonText: 'Yes', + }).then(async (result) => { + if (result.value) { + isLoading = true; + deleteAllVectorKnowledgeData(selectedCollection).then(res => { + if (res) { + successText = "All data has been deleted!"; + isComplete = true; + setTimeout(() => { + isComplete = false; + }, duration); + reset(true); + } else { + throw 'Error when deleting all data'; + } + }).catch(() => { + errorText = "Failed to delete all data." + isError = true; + setTimeout(() => { + isError = false; + }, duration); + }).finally(() => { + isLoading = false; + }); + } + }); + } + function toggleKnowledgeEditModal() { isOpenEditKnowledge = !isOpenEditKnowledge; if (!isOpenEditKnowledge) { @@ -730,7 +767,7 @@
-
+
{$_('Knowledges')}
@@ -745,6 +782,19 @@ on:click={() => onKnowledgeCreate()} > + +
+
+