From cd6ef4a875d1b6f53b2b17f7aec809f790441f8e Mon Sep 17 00:00:00 2001 From: Ibis Prevedello Date: Sat, 8 Apr 2023 13:49:06 -0300 Subject: [PATCH 1/2] refac: fix tool bug --- src/backend/langflow/graph/base.py | 2 +- src/backend/langflow/interface/tools/base.py | 28 +++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/backend/langflow/graph/base.py b/src/backend/langflow/graph/base.py index cde4622d3..8eb78e06c 100644 --- a/src/backend/langflow/graph/base.py +++ b/src/backend/langflow/graph/base.py @@ -4,6 +4,7 @@ # - Build each inner agent first, then build the outer agent import types +import warnings from copy import deepcopy from typing import Any, Dict, List, Optional @@ -12,7 +13,6 @@ from langflow.graph.utils import load_file from langflow.interface import loading from langflow.interface.listing import ALL_TYPES_DICT from langflow.utils.logger import logger -import warnings class Node: diff --git a/src/backend/langflow/interface/tools/base.py b/src/backend/langflow/interface/tools/base.py index 4989a7d4b..8a89c429d 100644 --- a/src/backend/langflow/interface/tools/base.py +++ b/src/backend/langflow/interface/tools/base.py @@ -73,9 +73,14 @@ class ToolCreator(LangChainTypeCreator): base_classes = ["Tool"] all_tools = {} for tool in self.type_to_loader_dict.keys(): - if tool_params := get_tool_params(get_tool_by_name(tool)): + tool_fcn = get_tool_by_name(tool) + if tool_params := get_tool_params(tool_fcn): tool_name = tool_params.get("name") or str(tool) - all_tools[tool_name] = {"type": tool, "params": tool_params} + all_tools[tool_name] = { + "type": tool, + "params": tool_params, + "fcn": tool_fcn, + } # Raise error if name is not in tools if name not in all_tools.keys(): @@ -83,15 +88,21 @@ class ToolCreator(LangChainTypeCreator): tool_type: str = all_tools[name]["type"] # type: ignore - if tool_type in _BASE_TOOLS: + if all_tools[tool_type]["fcn"] in _BASE_TOOLS.values(): params = [] - elif tool_type in _LLM_TOOLS: + elif all_tools[tool_type]["fcn"] in _LLM_TOOLS.values(): params = ["llm"] - elif tool_type in _EXTRA_LLM_TOOLS: - _, extra_keys = _EXTRA_LLM_TOOLS[tool_type] + elif all_tools[tool_type]["fcn"] in [ + val[0] for val in _EXTRA_LLM_TOOLS.values() + ]: + n_dict = {val[0]: val[1] for val in _EXTRA_LLM_TOOLS.values()} + extra_keys = n_dict[all_tools[tool_type]["fcn"]] params = ["llm"] + extra_keys - elif tool_type in _EXTRA_OPTIONAL_TOOLS: - _, extra_keys = _EXTRA_OPTIONAL_TOOLS[tool_type] + elif all_tools[tool_type]["fcn"] in [ + val[0] for val in _EXTRA_OPTIONAL_TOOLS.values() + ]: + n_dict = {val[0]: val[1] for val in _EXTRA_OPTIONAL_TOOLS.values()} # type: ignore + extra_keys = n_dict[all_tools[tool_type]["fcn"]] params = extra_keys elif tool_type == "Tool": params = ["name", "description", "func"] @@ -104,7 +115,6 @@ class ToolCreator(LangChainTypeCreator): elif tool_type in FILE_TOOLS: params = all_tools[name]["params"] # type: ignore base_classes += [name] - else: params = [] From a9f5da948bddb4845c8d0bbc12d788fb9f3fa524 Mon Sep 17 00:00:00 2001 From: Ibis Prevedello Date: Sat, 8 Apr 2023 13:49:22 -0300 Subject: [PATCH 2/2] Bump version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0eef15a03..bab62904e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "langflow" -version = "0.0.54" +version = "0.0.55" description = "A Python package with a built-in web application" authors = ["Logspace "] maintainers = [