diff --git a/backend/apps/rag/main.py b/backend/apps/rag/main.py index faebe95fb..d405ef0b4 100644 --- a/backend/apps/rag/main.py +++ b/backend/apps/rag/main.py @@ -1164,6 +1164,30 @@ def reset_vector_db(user=Depends(get_admin_user)): CHROMA_CLIENT.reset() +@app.get("/reset/uploads") +def reset_upload_dir(user=Depends(get_admin_user)) -> bool: + folder = f"{UPLOAD_DIR}" + try: + # Check if the directory exists + if os.path.exists(folder): + # Iterate over all the files and directories in the specified directory + for filename in os.listdir(folder): + file_path = os.path.join(folder, filename) + try: + if os.path.isfile(file_path) or os.path.islink(file_path): + os.unlink(file_path) # Remove the file or link + elif os.path.isdir(file_path): + shutil.rmtree(file_path) # Remove the directory + except Exception as e: + print(f"Failed to delete {file_path}. Reason: {e}") + else: + print(f"The directory {folder} does not exist") + except Exception as e: + print(f"Failed to process the directory {folder}. Reason: {e}") + + return True + + @app.get("/reset") def reset(user=Depends(get_admin_user)) -> bool: folder = f"{UPLOAD_DIR}" diff --git a/src/lib/apis/rag/index.ts b/src/lib/apis/rag/index.ts index d12782ad2..ca68827a3 100644 --- a/src/lib/apis/rag/index.ts +++ b/src/lib/apis/rag/index.ts @@ -359,6 +359,32 @@ export const scanDocs = async (token: string) => { return res; }; +export const resetUploadDir = async (token: string) => { + let error = null; + + const res = await fetch(`${RAG_API_BASE_URL}/reset/uploads`, { + method: 'GET', + headers: { + Accept: 'application/json', + authorization: `Bearer ${token}` + } + }) + .then(async (res) => { + if (!res.ok) throw await res.json(); + return res.json(); + }) + .catch((err) => { + error = err.detail; + return null; + }); + + if (error) { + throw error; + } + + return res; +}; + export const resetVectorDB = async (token: string) => { let error = null; diff --git a/src/lib/components/documents/Settings/General.svelte b/src/lib/components/documents/Settings/General.svelte index da648bbec..34d8f5787 100644 --- a/src/lib/components/documents/Settings/General.svelte +++ b/src/lib/components/documents/Settings/General.svelte @@ -8,7 +8,8 @@ getEmbeddingConfig, updateEmbeddingConfig, getRerankingConfig, - updateRerankingConfig + updateRerankingConfig, + resetUploadDir } from '$lib/apis/rag'; import { documents, models } from '$lib/stores'; @@ -24,6 +25,7 @@ let updateRerankingModelLoading = false; let showResetConfirm = false; + let showResetUploadDirConfirm = false; let embeddingEngine = ''; let embeddingModel = ''; @@ -496,99 +498,203 @@ {/if} -