From f829cc3b599e44e1d651dfebbdf7767e49ec858b Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Fri, 31 Mar 2023 18:14:05 -0300 Subject: [PATCH] fix: change field to templatefield This is done to avoid conflict with pydantic --- src/backend/langflow/interface/base.py | 4 ++-- .../langflow/interface/toolkits/base.py | 5 +++-- src/backend/langflow/interface/tools/base.py | 12 +++++------ src/backend/langflow/template/base.py | 6 +++--- src/backend/langflow/template/nodes.py | 20 +++++++++---------- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/backend/langflow/interface/base.py b/src/backend/langflow/interface/base.py index 66a3e3c29..2ec7bc12e 100644 --- a/src/backend/langflow/interface/base.py +++ b/src/backend/langflow/interface/base.py @@ -3,7 +3,7 @@ from typing import Any, Dict, List, Optional from pydantic import BaseModel -from langflow.template.base import Field, FrontendNode, Template +from langflow.template.base import TemplateField, FrontendNode, Template # Assuming necessary imports for Field, Template, and FrontendNode classes @@ -43,7 +43,7 @@ class LangChainTypeCreator(BaseModel, ABC): if signature is None: raise ValueError(f"{name} not found") fields = [ - Field( + TemplateField( name=key, field_type=value["type"], required=value.get("required", False), diff --git a/src/backend/langflow/interface/toolkits/base.py b/src/backend/langflow/interface/toolkits/base.py index 45f599491..0af46e504 100644 --- a/src/backend/langflow/interface/toolkits/base.py +++ b/src/backend/langflow/interface/toolkits/base.py @@ -47,13 +47,14 @@ class ToolkitCreator(LangChainTypeCreator): def to_list(self) -> List[str]: return list(self.type_to_loader_dict.keys()) - def get_create_function(self, name: str) -> Callable | None: + def get_create_function(self, name: str) -> Callable: if loader_name := self.create_functions.get(name, None): # import loader return import_module( f"from langchain.agents.agent_toolkits import {loader_name[0]}" ) - return None + else: + raise ValueError("Loader not found") def has_create_function(self, name: str) -> bool: # check if the function list is not empty diff --git a/src/backend/langflow/interface/tools/base.py b/src/backend/langflow/interface/tools/base.py index 31e638955..d7bf655e2 100644 --- a/src/backend/langflow/interface/tools/base.py +++ b/src/backend/langflow/interface/tools/base.py @@ -20,11 +20,11 @@ from langflow.interface.tools.util import ( get_tools_dict, ) from langflow.settings import settings -from langflow.template.base import Field, Template +from langflow.template.base import TemplateField, Template from langflow.utils import util TOOL_INPUTS = { - "str": Field( + "str": TemplateField( field_type="str", required=True, is_list=False, @@ -32,15 +32,15 @@ TOOL_INPUTS = { placeholder="", value="", ), - "llm": Field(field_type="BaseLLM", required=True, is_list=False, show=True), - "func": Field( + "llm": TemplateField(field_type="BaseLLM", required=True, is_list=False, show=True), + "func": TemplateField( field_type="function", required=True, is_list=False, show=True, multiline=True, ), - "code": Field( + "code": TemplateField( field_type="str", required=True, is_list=False, @@ -48,7 +48,7 @@ TOOL_INPUTS = { value="", multiline=True, ), - "dict_": Field( + "dict_": TemplateField( field_type="file", required=True, is_list=False, diff --git a/src/backend/langflow/template/base.py b/src/backend/langflow/template/base.py index 96805de68..bcd6ed162 100644 --- a/src/backend/langflow/template/base.py +++ b/src/backend/langflow/template/base.py @@ -4,7 +4,7 @@ from typing import Any, Union from pydantic import BaseModel -class FieldCreator(BaseModel, ABC): +class TemplateFieldCreator(BaseModel, ABC): field_type: str = "str" required: bool = False placeholder: str = "" @@ -37,13 +37,13 @@ class FieldCreator(BaseModel, ABC): return result -class Field(FieldCreator): +class TemplateField(TemplateFieldCreator): pass class Template(BaseModel): type_name: str - fields: list[Field] + fields: list[TemplateField] def to_dict(self): result = {field.name: field.to_dict() for field in self.fields} diff --git a/src/backend/langflow/template/nodes.py b/src/backend/langflow/template/nodes.py index 76d889b32..fae298f2d 100644 --- a/src/backend/langflow/template/nodes.py +++ b/src/backend/langflow/template/nodes.py @@ -1,6 +1,6 @@ from langchain.agents.mrkl import prompt -from langflow.template.base import Field, FrontendNode, Template +from langflow.template.base import TemplateField, FrontendNode, Template from langflow.utils.constants import DEFAULT_PYTHON_FUNCTION @@ -9,7 +9,7 @@ class ZeroShotPromptNode(FrontendNode): template: Template = Template( type_name="zero_shot", fields=[ - Field( + TemplateField( field_type="str", required=False, placeholder="", @@ -19,7 +19,7 @@ class ZeroShotPromptNode(FrontendNode): value=prompt.PREFIX, name="prefix", ), - Field( + TemplateField( field_type="str", required=True, placeholder="", @@ -29,7 +29,7 @@ class ZeroShotPromptNode(FrontendNode): value=prompt.SUFFIX, name="suffix", ), - Field( + TemplateField( field_type="str", required=False, placeholder="", @@ -53,7 +53,7 @@ class PythonFunctionNode(FrontendNode): template: Template = Template( type_name="python_function", fields=[ - Field( + TemplateField( field_type="code", required=True, placeholder="", @@ -76,7 +76,7 @@ class ToolNode(FrontendNode): template: Template = Template( type_name="tool", fields=[ - Field( + TemplateField( field_type="str", required=True, placeholder="", @@ -86,7 +86,7 @@ class ToolNode(FrontendNode): value="", name="name", ), - Field( + TemplateField( field_type="str", required=True, placeholder="", @@ -96,7 +96,7 @@ class ToolNode(FrontendNode): value="", name="description", ), - Field( + TemplateField( field_type="str", required=True, placeholder="", @@ -120,13 +120,13 @@ class JsonAgentNode(FrontendNode): template: Template = Template( type_name="json_agent", fields=[ - Field( + TemplateField( field_type="BaseToolkit", required=True, show=True, name="toolkit", ), - Field( + TemplateField( field_type="BaseLanguageModel", required=True, show=True,