From ffde8a6a094ef7b6d26395817ad69c9088e53141 Mon Sep 17 00:00:00 2001 From: antonpibm <51074867+antonpibm@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:45:30 +0300 Subject: [PATCH] Milvus vectorstore: fix pass ids as argument after upsert (#23761) **Description**: Milvus vectorstore supports both `add_documents` via the base class and `upsert` method which deletes and re-adds documents based on their ids **Issue**: Due to mismatch in the interfaces the ids used by `upsert` are neglected in `add_documents`, as `ids` are passed as argument in `upsert` but via `kwargs` is `add_documents` This caused exceptions and inconsistency in the DB, tested with `auto_id=False` **Fix**: pass `ids` via `kwargs` to `add_documents` --- libs/community/langchain_community/vectorstores/milvus.py | 1 + 1 file changed, 1 insertion(+) diff --git a/libs/community/langchain_community/vectorstores/milvus.py b/libs/community/langchain_community/vectorstores/milvus.py index 6af20a5d4cc..576a48b3213 100644 --- a/libs/community/langchain_community/vectorstores/milvus.py +++ b/libs/community/langchain_community/vectorstores/milvus.py @@ -1076,6 +1076,7 @@ class Milvus(VectorStore): return None if ids is not None and len(ids): + kwargs["ids"] = ids try: self.delete(ids=ids) except MilvusException: