From 23fbec9d42e775f4f9abc268ccea5a700cac7c50 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Mon, 24 Apr 2023 08:40:06 -0300 Subject: [PATCH] feat(loading.py): add error handling for empty documents in vectorstore instantiation feat(loading.py): add optional build parameter to load_flow_from_json function --- src/backend/langflow/interface/loading.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/interface/loading.py b/src/backend/langflow/interface/loading.py index 11db47ee6..1b404f38c 100644 --- a/src/backend/langflow/interface/loading.py +++ b/src/backend/langflow/interface/loading.py @@ -68,6 +68,13 @@ def instantiate_class(node_type: str, base_type: str, params: Dict) -> Any: params.pop("model") return class_object(**params) elif base_type == "vectorstores": + if len(params.get("documents", [])) == 0: + # Error when the pdf or other source was not correctly + # loaded. + raise ValueError( + "The source you provided did not load correctly or was empty." + "This may cause an error in the vectorstore." + ) return class_object.from_documents(**params) elif base_type == "documentloaders": return class_object(**params).load() @@ -79,7 +86,7 @@ def instantiate_class(node_type: str, base_type: str, params: Dict) -> Any: return class_object(**params) -def load_flow_from_json(path: str): +def load_flow_from_json(path: str, build=True): # This is done to avoid circular imports from langflow.graph import Graph @@ -96,7 +103,7 @@ def load_flow_from_json(path: str): # Nodes, edges and root node edges = data_graph["edges"] graph = Graph(nodes, edges) - return graph.build() + return graph.build() if build else graph def replace_zero_shot_prompt_with_prompt_template(nodes):