diff --git a/vectordbs/qdrant.py b/vectordbs/qdrant.py index 5e3853e9..ff698ace 100644 --- a/vectordbs/qdrant.py +++ b/vectordbs/qdrant.py @@ -5,6 +5,7 @@ from semantic_router.encoders import BaseEncoder from tqdm import tqdm +from models.delete import DeleteResponse from models.document import BaseDocumentChunk from vectordbs.base import BaseVectorDatabase @@ -89,6 +90,29 @@ async def query(self, input: str, top_k: int = MAX_QUERY_TOP_K) -> List: ] async def delete(self, file_url: str) -> None: + + # client.count( + # collection_name="{collection_name}", + # count_filter=models.Filter( + # must=[ + # models.FieldCondition(key="color", match=models.MatchValue(value="red")), + # ] + # ), + # exact=True, + # ) + + deleted_chunks = self.client.count( + collection_name=self.index_name, + count_filter=rest.Filter( + must=[ + rest.FieldCondition( + key="file_url", match=rest.MatchValue(value=file_url) + ) + ] + ), + exact=True, + ) + self.client.delete( collection_name=self.index_name, points_selector=rest.FilterSelector( @@ -101,3 +125,5 @@ async def delete(self, file_url: str) -> None: ) ), ) + + return DeleteResponse(num_of_deleted_chunks=deleted_chunks.count)