From 3a65e1b65fc27d6c1f2641909116e9a23102d2e4 Mon Sep 17 00:00:00 2001 From: Tam Date: Sat, 10 May 2025 13:10:26 +0800 Subject: [PATCH] fix(VectorStore) fix MilvusStore to use serialize function for metadata json encoding (#2672) Co-authored-by: tam --- .../src/dbgpt_ext/storage/vector_store/milvus_store.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/dbgpt-ext/src/dbgpt_ext/storage/vector_store/milvus_store.py b/packages/dbgpt-ext/src/dbgpt_ext/storage/vector_store/milvus_store.py index b98de08f5..5d3456545 100644 --- a/packages/dbgpt-ext/src/dbgpt_ext/storage/vector_store/milvus_store.py +++ b/packages/dbgpt-ext/src/dbgpt_ext/storage/vector_store/milvus_store.py @@ -19,6 +19,7 @@ from dbgpt.storage.vector_store.base import ( from dbgpt.storage.vector_store.filters import FilterOperator, MetadataFilters from dbgpt.util import string_utils from dbgpt.util.i18n_utils import _ +from dbgpt.util.json_utils import serialize logger = logging.getLogger(__name__) @@ -412,9 +413,10 @@ class MilvusStore(VectorStoreBase): # self.fields.extend(metadatas[0].keys()) if len(self.fields) > 2 and metadatas is not None: for d in metadatas: + metadata_json = json.dumps(d, default=serialize, ensure_ascii=False) # for key, value in d.items(): - insert_dict.setdefault("metadata", []).append(json.dumps(d)) - insert_dict.setdefault("props_field", []).append(d) + insert_dict.setdefault("metadata", []).append(metadata_json) + insert_dict.setdefault("props_field", []).append(metadata_json) # Convert dict to list of lists for insertion insert_list = [insert_dict[x] for x in self.fields] # Insert into the collection.