From 413d87257bfc04b8b80d4bba4dd10c799c21687e Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Wed, 5 Apr 2023 15:10:43 -0300 Subject: [PATCH] fix: filtering now happening in property when possible --- src/backend/langflow/interface/agents/base.py | 2 +- src/backend/langflow/interface/chains/base.py | 14 ++++++++------ src/backend/langflow/interface/prompts/base.py | 7 ++++++- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/backend/langflow/interface/agents/base.py b/src/backend/langflow/interface/agents/base.py index e01737624..3774c3011 100644 --- a/src/backend/langflow/interface/agents/base.py +++ b/src/backend/langflow/interface/agents/base.py @@ -35,7 +35,7 @@ class AgentCreator(LangChainTypeCreator): # Now this is a generator def to_list(self) -> List[str]: names = [] - for name, agent in self.type_to_loader_dict.items(): + for _, agent in self.type_to_loader_dict.items(): agent_name = ( agent.function_name() if hasattr(agent, "function_name") diff --git a/src/backend/langflow/interface/chains/base.py b/src/backend/langflow/interface/chains/base.py index b4bb58b9b..0a46d3474 100644 --- a/src/backend/langflow/interface/chains/base.py +++ b/src/backend/langflow/interface/chains/base.py @@ -19,6 +19,12 @@ class ChainCreator(LangChainTypeCreator): from langflow.interface.chains.custom import CUSTOM_CHAINS self.type_dict.update(CUSTOM_CHAINS) + # Filter according to settings.chains + self.type_dict = { + name: chain + for name, chain in self.type_dict.items() + if name in settings.chains or settings.dev + } return self.type_dict def get_signature(self, name: str) -> Optional[Dict]: @@ -32,12 +38,8 @@ class ChainCreator(LangChainTypeCreator): def to_list(self) -> List[str]: custom_chains = list(get_custom_nodes("chains").keys()) default_chains = list(self.type_to_loader_dict.keys()) - # Check if the chain is in the settings - return [ - chain - for chain in default_chains + custom_chains - if chain in settings.chains or settings.dev - ] + + return default_chains + custom_chains chain_creator = ChainCreator() diff --git a/src/backend/langflow/interface/prompts/base.py b/src/backend/langflow/interface/prompts/base.py index 6718d03a0..73f842833 100644 --- a/src/backend/langflow/interface/prompts/base.py +++ b/src/backend/langflow/interface/prompts/base.py @@ -24,12 +24,17 @@ class PromptCreator(LangChainTypeCreator): prompt_name: import_class(f"langchain.prompts.{prompt_name}") # if prompt_name is not lower case it is a class for prompt_name in prompts.__all__ - if not prompt_name.islower() and prompt_name in settings.prompts } # Merge CUSTOM_PROMPTS into self.type_dict from langflow.interface.prompts.custom import CUSTOM_PROMPTS self.type_dict.update(CUSTOM_PROMPTS) + # Now filter according to settings.prompts + self.type_dict = { + name: prompt + for name, prompt in self.type_dict.items() + if name in settings.prompts or settings.dev + } return self.type_dict def get_signature(self, name: str) -> Optional[Dict]: