From a7a4630bf426d1d12dc44a8c9c735be2016dc47e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E8=BF=9C?= <90301759+19374242@users.noreply.github.com> Date: Tue, 30 Apr 2024 08:06:00 +0800 Subject: [PATCH] community[patch]: Modify the text field type and add new exception handling (#20116) Co-authored-by: gaoyuan --- .../vectorstores/vikingdb.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/libs/community/langchain_community/vectorstores/vikingdb.py b/libs/community/langchain_community/vectorstores/vikingdb.py index 993cfa7a3c..002db6485b 100644 --- a/libs/community/langchain_community/vectorstores/vikingdb.py +++ b/libs/community/langchain_community/vectorstores/vikingdb.py @@ -115,19 +115,27 @@ class VikingDB(VectorStore): # print(key, value) if isinstance(value, str): fields.append(Field(key, FieldType.String)) - if isinstance(value, int): + elif isinstance(value, int): fields.append(Field(key, FieldType.Int64)) - if isinstance(value, bool): + elif isinstance(value, bool): fields.append(Field(key, FieldType.Bool)) - if isinstance(value, list) and all( + elif isinstance(value, list) and all( isinstance(item, str) for item in value ): fields.append(Field(key, FieldType.List_String)) - if isinstance(value, list) and all( + elif isinstance(value, list) and all( isinstance(item, int) for item in value ): fields.append(Field(key, FieldType.List_Int64)) - fields.append(Field("text", FieldType.String)) + elif isinstance(value, bytes): + fields.append(Field(key, FieldType.Text)) + else: + raise ValueError( + "metadatas value is invalid" + "please change the type of metadatas." + ) + # fields.append(Field("text", FieldType.String)) + fields.append(Field("text", FieldType.Text)) fields.append(Field("primary_key", FieldType.String, is_primary_key=True))