From 8477368f9ccd4ff2d8cacbb76e09f7949cb70335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=BB=E8=8A=B1=E9=A6=99?= Date: Tue, 30 May 2023 19:42:44 +0800 Subject: [PATCH] delete_docs (#499) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除文档的时候重新生成知识库(FAISS)内的数据 --- api.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/api.py b/api.py index 70da842..3a96bc8 100644 --- a/api.py +++ b/api.py @@ -175,7 +175,7 @@ async def list_docs( async def delete_docs( knowledge_base_id: str = Query(..., - description="Knowledge Base Name(注意此方法仅删除上传的文件并不会删除知识库(FAISS)内数据)", + description="Knowledge Base Name", example="kb1"), doc_name: Optional[str] = Query( None, description="doc name", example="doc_name_1.pdf" @@ -188,18 +188,20 @@ async def delete_docs( doc_path = get_file_path(knowledge_base_id, doc_name) if os.path.exists(doc_path): os.remove(doc_path) + + # 删除上传的文件后重新生成知识库(FAISS)内的数据 + remain_docs = await list_docs(knowledge_base_id) + if len(remain_docs.data) == 0: + shutil.rmtree(get_folder_path(knowledge_base_id), ignore_errors=True) + else: + local_doc_qa.init_knowledge_vector_store( + get_folder_path(knowledge_base_id), get_vs_path(knowledge_base_id) + ) + return BaseResponse(code=200, msg=f"document {doc_name} delete success") else: return BaseResponse(code=1, msg=f"document {doc_name} not found") - remain_docs = await list_docs(knowledge_base_id) - remain_docs = remain_docs.json() - if len(remain_docs["data"]) == 0: - shutil.rmtree(get_folder_path(knowledge_base_id), ignore_errors=True) - else: - local_doc_qa.init_knowledge_vector_store( - get_folder_path(knowledge_base_id), get_vs_path(knowledge_base_id) - ) else: shutil.rmtree(get_folder_path(knowledge_base_id)) return BaseResponse(code=200, msg=f"Knowledge Base {knowledge_base_id} delete success")