From 116c600d95faa6a4613a97e616fa21f8a39f5a75 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 6 Jul 2023 17:27:55 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(base.py):=20add=20check=20fo?= =?UTF-8?q?r=20name=20in=20settings=20to=20prevent=20accessing=20non-exist?= =?UTF-8?q?ent=20keys=20The=20code=20now=20checks=20if=20the=20name=20is?= =?UTF-8?q?=20present=20in=20the=20settings=20before=20accessing=20the=20c?= =?UTF-8?q?orresponding=20keys=20in=20the=20get=5Fcustom=5Fnodes=20functio?= =?UTF-8?q?n.=20This=20prevents=20accessing=20non-existent=20keys=20and=20?= =?UTF-8?q?avoids=20potential=20errors.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/interface/agents/base.py | 5 ++++- src/backend/langflow/interface/chains/base.py | 5 ++++- src/backend/langflow/interface/memories/base.py | 5 ++++- src/backend/langflow/interface/prompts/base.py | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/backend/langflow/interface/agents/base.py b/src/backend/langflow/interface/agents/base.py index b272144bc..2aa9fc4c2 100644 --- a/src/backend/langflow/interface/agents/base.py +++ b/src/backend/langflow/interface/agents/base.py @@ -32,7 +32,10 @@ class AgentCreator(LangChainTypeCreator): def get_signature(self, name: str) -> Optional[Dict]: try: - if name in get_custom_nodes(self.type_name).keys(): + if ( + name in get_custom_nodes(self.type_name).keys() + and name in settings.agents + ): return get_custom_nodes(self.type_name)[name] elif name in self.from_method_nodes: return build_template_from_method( diff --git a/src/backend/langflow/interface/chains/base.py b/src/backend/langflow/interface/chains/base.py index ff7e1ee33..9459f49e5 100644 --- a/src/backend/langflow/interface/chains/base.py +++ b/src/backend/langflow/interface/chains/base.py @@ -45,7 +45,10 @@ class ChainCreator(LangChainTypeCreator): def get_signature(self, name: str) -> Optional[Dict]: try: - if name in get_custom_nodes(self.type_name).keys(): + if ( + name in get_custom_nodes(self.type_name).keys() + and name in settings.chains + ): return get_custom_nodes(self.type_name)[name] elif name in self.from_method_nodes.keys(): return build_template_from_method( diff --git a/src/backend/langflow/interface/memories/base.py b/src/backend/langflow/interface/memories/base.py index 0f97a02fe..9d3ceb30f 100644 --- a/src/backend/langflow/interface/memories/base.py +++ b/src/backend/langflow/interface/memories/base.py @@ -32,7 +32,10 @@ class MemoryCreator(LangChainTypeCreator): def get_signature(self, name: str) -> Optional[Dict]: """Get the signature of a memory.""" try: - if name in get_custom_nodes(self.type_name).keys(): + if ( + name in get_custom_nodes(self.type_name).keys() + and name in settings.memories + ): return get_custom_nodes(self.type_name)[name] elif name in self.from_method_nodes: return build_template_from_method( diff --git a/src/backend/langflow/interface/prompts/base.py b/src/backend/langflow/interface/prompts/base.py index 39bd94c5b..ef4f03991 100644 --- a/src/backend/langflow/interface/prompts/base.py +++ b/src/backend/langflow/interface/prompts/base.py @@ -40,7 +40,10 @@ class PromptCreator(LangChainTypeCreator): def get_signature(self, name: str) -> Optional[Dict]: try: - if name in get_custom_nodes(self.type_name).keys(): + if ( + name in get_custom_nodes(self.type_name).keys() + and name in settings.prompts + ): return get_custom_nodes(self.type_name)[name] return build_template_from_class(name, self.type_to_loader_dict) except ValueError as exc: