From 688ca480191cac9ae5645c6a3c5b39a06c6c707b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E8=BF=9C?= <90301759+19374242@users.noreply.github.com> Date: Fri, 29 Mar 2024 04:58:23 +0800 Subject: [PATCH] community[patch]: Adding validation when vector does not exist (#19698) Adding validation when vector does not exist Co-authored-by: gaoyuan --- .../langchain_community/vectorstores/vikingdb.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/libs/community/langchain_community/vectorstores/vikingdb.py b/libs/community/langchain_community/vectorstores/vikingdb.py index 0b55a480269..768971234e6 100644 --- a/libs/community/langchain_community/vectorstores/vikingdb.py +++ b/libs/community/langchain_community/vectorstores/vikingdb.py @@ -289,9 +289,13 @@ class VikingDB(VectorStore): ret = [] for item in res: - item.fields.pop("primary_key") - item.fields.pop("vector") - page_content = item.fields.pop("text") + if "primary_key" in item.fields: + item.fields.pop("primary_key") + if "vector" in item.fields: + item.fields.pop("vector") + page_content = "" + if "text" in item.fields: + page_content = item.fields.pop("text") doc = Document(page_content=page_content, metadata=item.fields) pair = (doc, item.score) ret.append(pair) @@ -351,6 +355,12 @@ class VikingDB(VectorStore): documents = [] ordered_result_embeddings = [] for item in res: + if ( + "vector" not in item.fields + or "primary_key" not in item.fields + or "text" not in item.fields + ): + continue ordered_result_embeddings.append(item.fields.pop("vector")) item.fields.pop("primary_key") page_content = item.fields.pop("text")