fix(VectorStore) fix MilvusStore to use serialize function for metadata json encoding (#2672)

Co-authored-by: tam <tanwe@fulan.com.cn>
This commit is contained in:
Tam 2025-05-10 13:10:26 +08:00 committed by GitHub
parent 421004a1d8
commit 3a65e1b65f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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.