From caf7d067bda19663fd56c13c5ee13589f7b31a53 Mon Sep 17 00:00:00 2001 From: letonghan Date: Thu, 7 Nov 2024 17:30:35 +0800 Subject: [PATCH 1/2] fix delete bug Signed-off-by: letonghan --- .../redis/langchain/prepare_doc_redis.py | 98 ++++++++++--------- 1 file changed, 51 insertions(+), 47 deletions(-) diff --git a/comps/dataprep/redis/langchain/prepare_doc_redis.py b/comps/dataprep/redis/langchain/prepare_doc_redis.py index 4aa6bef483..31f4aa8c17 100644 --- a/comps/dataprep/redis/langchain/prepare_doc_redis.py +++ b/comps/dataprep/redis/langchain/prepare_doc_redis.py @@ -436,63 +436,67 @@ async def delete_single_file(file_path: str = Body(..., embed=True)): logger.info(f"[ delete ] delete_path: {delete_path}") # partially delete files - if delete_path.exists(): - doc_id = "file:" + encode_filename(file_path) + doc_id = "file:" + encode_filename(file_path) + logger.info(f"[ delete ] doc id: {doc_id}") - # determine whether this file exists in db KEY_INDEX_NAME + # determine whether this file exists in db KEY_INDEX_NAME + try: + key_ids = search_by_id(client, doc_id).key_ids + except Exception as e: + if logflag: + logger.info(f"[ delete ] {e}, File {file_path} does not exists.") + raise HTTPException( + status_code=404, detail=f"File not found in db {KEY_INDEX_NAME}. Please check file_path." + ) + file_ids = key_ids.split("#") + + # delete file keys id in db KEY_INDEX_NAME + try: + assert delete_by_id(client, doc_id) + except Exception as e: + if logflag: + logger.info(f"[ delete ] {e}. File {file_path} delete failed for db {KEY_INDEX_NAME}.") + raise HTTPException(status_code=500, detail=f"File {file_path} delete failed for key index.") + + # delete file content in db INDEX_NAME + for file_id in file_ids: + # determine whether this file exists in db INDEX_NAME try: - key_ids = search_by_id(client, doc_id).key_ids + search_by_id(client2, file_id) except Exception as e: if logflag: - logger.info(f"[ delete ] {e}, File {file_path} does not exists.") + logger.info(f"[ delete ] {e}. File {file_path} does not exists.") raise HTTPException( - status_code=404, detail=f"File not found in db {KEY_INDEX_NAME}. Please check file_path." + status_code=404, detail=f"File not found in db {INDEX_NAME}. Please check file_path." ) - file_ids = key_ids.split("#") - # delete file - if delete_path.is_file(): - # delete file keys id in db KEY_INDEX_NAME - try: - assert delete_by_id(client, doc_id) - except Exception as e: - if logflag: - logger.info(f"[ delete ] {e}. File {file_path} delete failed for db {KEY_INDEX_NAME}.") - raise HTTPException(status_code=500, detail=f"File {file_path} delete failed.") - - # delete file content in db INDEX_NAME - for file_id in file_ids: - # determine whether this file exists in db INDEX_NAME - try: - content = search_by_id(client2, file_id).content - except Exception as e: - if logflag: - logger.info(f"[ delete ] {e}. File {file_path} does not exists.") - raise HTTPException( - status_code=404, detail=f"File not found in db {INDEX_NAME}. Please check file_path." - ) - - # delete file content - try: - assert delete_by_id(client2, file_id) - except Exception as e: - if logflag: - logger.info(f"[ delete ] {e}. File {file_path} delete failed for db {INDEX_NAME}") - raise HTTPException(status_code=500, detail=f"File {file_path} delete failed.") - - # delete file on local disk - delete_path.unlink() + # delete file content + try: + assert delete_by_id(client2, file_id) + except Exception as e: if logflag: - logger.info({"status": True}) - return {"status": True} + logger.info(f"[ delete ] {e}. File {file_path} delete failed for db {INDEX_NAME}") + raise HTTPException(status_code=500, detail=f"File {file_path} delete failed for index.") - # delete folder - else: - if logflag: - logger.info(f"[ delete ] Delete folder {file_path} is not supported for now.") - raise HTTPException(status_code=404, detail=f"Delete folder {file_path} is not supported for now.") + # local file does not exist (restarted docker container) + if not delete_path.exists(): + if logflag: + logger.info(f"[ delete ] File {file_path} not saved loacally.") + return {"status": True} + + # delete local file + if delete_path.is_file(): + # delete file on local disk + delete_path.unlink() + if logflag: + logger.info(f"[ delete ] File {file_path} deleted successfully.") + return {"status": True} + + # delete folder else: - raise HTTPException(status_code=404, detail=f"File {file_path} not found. Please check file_path.") + if logflag: + logger.info(f"[ delete ] Delete folder {file_path} is not supported for now.") + raise HTTPException(status_code=404, detail=f"Delete folder {file_path} is not supported for now.") if __name__ == "__main__": From 0a8ccc10f80449897b911ec144c555ea17ce5d56 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 09:33:44 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- comps/dataprep/redis/langchain/prepare_doc_redis.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/comps/dataprep/redis/langchain/prepare_doc_redis.py b/comps/dataprep/redis/langchain/prepare_doc_redis.py index 31f4aa8c17..6902117dcd 100644 --- a/comps/dataprep/redis/langchain/prepare_doc_redis.py +++ b/comps/dataprep/redis/langchain/prepare_doc_redis.py @@ -445,9 +445,7 @@ async def delete_single_file(file_path: str = Body(..., embed=True)): except Exception as e: if logflag: logger.info(f"[ delete ] {e}, File {file_path} does not exists.") - raise HTTPException( - status_code=404, detail=f"File not found in db {KEY_INDEX_NAME}. Please check file_path." - ) + raise HTTPException(status_code=404, detail=f"File not found in db {KEY_INDEX_NAME}. Please check file_path.") file_ids = key_ids.split("#") # delete file keys id in db KEY_INDEX_NAME @@ -466,9 +464,7 @@ async def delete_single_file(file_path: str = Body(..., embed=True)): except Exception as e: if logflag: logger.info(f"[ delete ] {e}. File {file_path} does not exists.") - raise HTTPException( - status_code=404, detail=f"File not found in db {INDEX_NAME}. Please check file_path." - ) + raise HTTPException(status_code=404, detail=f"File not found in db {INDEX_NAME}. Please check file_path.") # delete file content try: @@ -481,9 +477,9 @@ async def delete_single_file(file_path: str = Body(..., embed=True)): # local file does not exist (restarted docker container) if not delete_path.exists(): if logflag: - logger.info(f"[ delete ] File {file_path} not saved loacally.") + logger.info(f"[ delete ] File {file_path} not saved locally.") return {"status": True} - + # delete local file if delete_path.is_file(): # delete file on local disk