fix: change field to templatefield

This is done to avoid conflict with pydantic
This commit is contained in:
Gabriel Almeida 2023-03-31 18:14:05 -03:00
commit f829cc3b59
5 changed files with 24 additions and 23 deletions

View file

@ -3,7 +3,7 @@ from typing import Any, Dict, List, Optional
from pydantic import BaseModel 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 # Assuming necessary imports for Field, Template, and FrontendNode classes
@ -43,7 +43,7 @@ class LangChainTypeCreator(BaseModel, ABC):
if signature is None: if signature is None:
raise ValueError(f"{name} not found") raise ValueError(f"{name} not found")
fields = [ fields = [
Field( TemplateField(
name=key, name=key,
field_type=value["type"], field_type=value["type"],
required=value.get("required", False), required=value.get("required", False),

View file

@ -47,13 +47,14 @@ class ToolkitCreator(LangChainTypeCreator):
def to_list(self) -> List[str]: def to_list(self) -> List[str]:
return list(self.type_to_loader_dict.keys()) 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): if loader_name := self.create_functions.get(name, None):
# import loader # import loader
return import_module( return import_module(
f"from langchain.agents.agent_toolkits import {loader_name[0]}" 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: def has_create_function(self, name: str) -> bool:
# check if the function list is not empty # check if the function list is not empty

View file

@ -20,11 +20,11 @@ from langflow.interface.tools.util import (
get_tools_dict, get_tools_dict,
) )
from langflow.settings import settings from langflow.settings import settings
from langflow.template.base import Field, Template from langflow.template.base import TemplateField, Template
from langflow.utils import util from langflow.utils import util
TOOL_INPUTS = { TOOL_INPUTS = {
"str": Field( "str": TemplateField(
field_type="str", field_type="str",
required=True, required=True,
is_list=False, is_list=False,
@ -32,15 +32,15 @@ TOOL_INPUTS = {
placeholder="", placeholder="",
value="", value="",
), ),
"llm": Field(field_type="BaseLLM", required=True, is_list=False, show=True), "llm": TemplateField(field_type="BaseLLM", required=True, is_list=False, show=True),
"func": Field( "func": TemplateField(
field_type="function", field_type="function",
required=True, required=True,
is_list=False, is_list=False,
show=True, show=True,
multiline=True, multiline=True,
), ),
"code": Field( "code": TemplateField(
field_type="str", field_type="str",
required=True, required=True,
is_list=False, is_list=False,
@ -48,7 +48,7 @@ TOOL_INPUTS = {
value="", value="",
multiline=True, multiline=True,
), ),
"dict_": Field( "dict_": TemplateField(
field_type="file", field_type="file",
required=True, required=True,
is_list=False, is_list=False,

View file

@ -4,7 +4,7 @@ from typing import Any, Union
from pydantic import BaseModel from pydantic import BaseModel
class FieldCreator(BaseModel, ABC): class TemplateFieldCreator(BaseModel, ABC):
field_type: str = "str" field_type: str = "str"
required: bool = False required: bool = False
placeholder: str = "" placeholder: str = ""
@ -37,13 +37,13 @@ class FieldCreator(BaseModel, ABC):
return result return result
class Field(FieldCreator): class TemplateField(TemplateFieldCreator):
pass pass
class Template(BaseModel): class Template(BaseModel):
type_name: str type_name: str
fields: list[Field] fields: list[TemplateField]
def to_dict(self): def to_dict(self):
result = {field.name: field.to_dict() for field in self.fields} result = {field.name: field.to_dict() for field in self.fields}

View file

@ -1,6 +1,6 @@
from langchain.agents.mrkl import prompt 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 from langflow.utils.constants import DEFAULT_PYTHON_FUNCTION
@ -9,7 +9,7 @@ class ZeroShotPromptNode(FrontendNode):
template: Template = Template( template: Template = Template(
type_name="zero_shot", type_name="zero_shot",
fields=[ fields=[
Field( TemplateField(
field_type="str", field_type="str",
required=False, required=False,
placeholder="", placeholder="",
@ -19,7 +19,7 @@ class ZeroShotPromptNode(FrontendNode):
value=prompt.PREFIX, value=prompt.PREFIX,
name="prefix", name="prefix",
), ),
Field( TemplateField(
field_type="str", field_type="str",
required=True, required=True,
placeholder="", placeholder="",
@ -29,7 +29,7 @@ class ZeroShotPromptNode(FrontendNode):
value=prompt.SUFFIX, value=prompt.SUFFIX,
name="suffix", name="suffix",
), ),
Field( TemplateField(
field_type="str", field_type="str",
required=False, required=False,
placeholder="", placeholder="",
@ -53,7 +53,7 @@ class PythonFunctionNode(FrontendNode):
template: Template = Template( template: Template = Template(
type_name="python_function", type_name="python_function",
fields=[ fields=[
Field( TemplateField(
field_type="code", field_type="code",
required=True, required=True,
placeholder="", placeholder="",
@ -76,7 +76,7 @@ class ToolNode(FrontendNode):
template: Template = Template( template: Template = Template(
type_name="tool", type_name="tool",
fields=[ fields=[
Field( TemplateField(
field_type="str", field_type="str",
required=True, required=True,
placeholder="", placeholder="",
@ -86,7 +86,7 @@ class ToolNode(FrontendNode):
value="", value="",
name="name", name="name",
), ),
Field( TemplateField(
field_type="str", field_type="str",
required=True, required=True,
placeholder="", placeholder="",
@ -96,7 +96,7 @@ class ToolNode(FrontendNode):
value="", value="",
name="description", name="description",
), ),
Field( TemplateField(
field_type="str", field_type="str",
required=True, required=True,
placeholder="", placeholder="",
@ -120,13 +120,13 @@ class JsonAgentNode(FrontendNode):
template: Template = Template( template: Template = Template(
type_name="json_agent", type_name="json_agent",
fields=[ fields=[
Field( TemplateField(
field_type="BaseToolkit", field_type="BaseToolkit",
required=True, required=True,
show=True, show=True,
name="toolkit", name="toolkit",
), ),
Field( TemplateField(
field_type="BaseLanguageModel", field_type="BaseLanguageModel",
required=True, required=True,
show=True, show=True,