From fc64cdee64e91f9185ec7422cd3dc3ff4215bab1 Mon Sep 17 00:00:00 2001 From: Jyong <76649700+JohnJyong@users.noreply.github.com> Date: Tue, 27 Feb 2024 12:23:13 +0800 Subject: [PATCH] fix mivlus delete by ids error (#2573) Co-authored-by: jyong --- api/core/rag/datasource/vdb/field.py | 2 +- api/core/rag/datasource/vdb/milvus/milvus_vector.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/api/core/rag/datasource/vdb/field.py b/api/core/rag/datasource/vdb/field.py index 6a594a83ca..dc400dafbb 100644 --- a/api/core/rag/datasource/vdb/field.py +++ b/api/core/rag/datasource/vdb/field.py @@ -7,4 +7,4 @@ class Field(Enum): GROUP_KEY = "group_id" VECTOR = "vector" TEXT_KEY = "text" - PRIMARY_KEY = " id" + PRIMARY_KEY = "id" diff --git a/api/core/rag/datasource/vdb/milvus/milvus_vector.py b/api/core/rag/datasource/vdb/milvus/milvus_vector.py index bb12ef1b56..0fc8ed5a26 100644 --- a/api/core/rag/datasource/vdb/milvus/milvus_vector.py +++ b/api/core/rag/datasource/vdb/milvus/milvus_vector.py @@ -124,7 +124,12 @@ class MilvusVector(BaseVector): def delete_by_ids(self, doc_ids: list[str]) -> None: - self._client.delete(collection_name=self._collection_name, pks=doc_ids) + result = self._client.query(collection_name=self._collection_name, + filter=f'metadata["doc_id"] in {doc_ids}', + output_fields=["id"]) + if result: + ids = [item["id"] for item in result] + self._client.delete(collection_name=self._collection_name, pks=ids) def delete(self) -> None: alias = uuid4().hex