From 3029fe029fd7e5791fba065fe59f9a661b2c4863 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Thu, 25 May 2023 10:10:56 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(chat=5Fmanager.py):=20fix=20?= =?UTF-8?q?is=5Ffirst=5Fmessage=20logic=20to=20correctly=20identify=20firs?= =?UTF-8?q?t=20message=20=F0=9F=90=9B=20fix(nodes.py):=20remove=20deepcopy?= =?UTF-8?q?ing=20of=20certain=20objects=20to=20improve=20performance=20?= =?UTF-8?q?=F0=9F=90=9B=20fix(loading.py):=20add=20error=20handling=20for?= =?UTF-8?q?=20empty=20documents=20in=20instantiate=5Ftextsplitter=20The=20?= =?UTF-8?q?is=5Ffirst=5Fmessage=20logic=20in=20chat=5Fmanager.py=20was=20n?= =?UTF-8?q?ot=20correctly=20identifying=20the=20first=20message.=20The=20f?= =?UTF-8?q?ix=20in=20this=20commit=20changes=20the=20comparison=20to=20 Any: + # LLM is different because some models might take up too much memory + # or time to load. So we only load them when we need them.ß + if self.node_type == self.built_node_type: + return self.class_built_object + if not self._built or force: + self._build() + self.built_node_type = self.node_type + self.class_built_object = self._built_object + # Avoid deepcopying the LLM + # that are loaded from a file + return self._built_object + class ToolkitNode(Node): def __init__(self, data: Dict): @@ -132,7 +148,7 @@ class WrapperNode(Node): if "headers" in self.params: self.params["headers"] = eval(self.params["headers"]) self._build() - return deepcopy(self._built_object) + return self._built_object class DocumentLoaderNode(Node): diff --git a/src/backend/langflow/interface/loading.py b/src/backend/langflow/interface/loading.py index 93135067b..bd2946a3e 100644 --- a/src/backend/langflow/interface/loading.py +++ b/src/backend/langflow/interface/loading.py @@ -134,7 +134,13 @@ def instantiate_documentloader(class_object, params): def instantiate_textsplitter(class_object, params): - documents = params.pop("documents") + try: + documents = params.pop("documents") + except KeyError as e: + raise ValueError( + "The source you provided did not load correctly or was empty." + "Try changing the chunk_size of the Text Splitter." + ) from e text_splitter = class_object(**params) return text_splitter.split_documents(documents)