diff --git a/api/core/rag/datasource/vdb/qdrant/qdrant_vector.py b/api/core/rag/datasource/vdb/qdrant/qdrant_vector.py index 2432931228..6bd4b5c340 100644 --- a/api/core/rag/datasource/vdb/qdrant/qdrant_vector.py +++ b/api/core/rag/datasource/vdb/qdrant/qdrant_vector.py @@ -231,21 +231,30 @@ class QdrantVector(BaseVector): def delete(self): from qdrant_client.http import models - filter = models.Filter( - must=[ - models.FieldCondition( - key="group_id", - match=models.MatchValue(value=self._group_id), + from qdrant_client.http.exceptions import UnexpectedResponse + + try: + filter = models.Filter( + must=[ + models.FieldCondition( + key="group_id", + match=models.MatchValue(value=self._group_id), + ), + ], + ) + self._client.delete( + collection_name=self._collection_name, + points_selector=FilterSelector( + filter=filter ), - ], - ) - self._client.delete( - collection_name=self._collection_name, - points_selector=FilterSelector( - filter=filter - ), - ) - + ) + except UnexpectedResponse as e: + # Collection does not exist, so return + if e.status_code == 404: + return + # Some other error occurred, so re-raise the exception + else: + raise e def delete_by_ids(self, ids: list[str]) -> None: from qdrant_client.http import models diff --git a/api/requirements.txt b/api/requirements.txt index fbadcdbf04..ae5c77137a 100644 --- a/api/requirements.txt +++ b/api/requirements.txt @@ -52,7 +52,7 @@ safetensors==0.3.2 zhipuai==1.0.7 werkzeug~=3.0.1 pymilvus==2.3.0 -qdrant-client==1.6.4 +qdrant-client==1.7.3 cohere~=4.44 pyyaml~=6.0.1 numpy~=1.25.2