diff --git a/src/backend/base/langflow/inputs/__init__.py b/src/backend/base/langflow/inputs/__init__.py index dd227d5db..53927ca0f 100644 --- a/src/backend/base/langflow/inputs/__init__.py +++ b/src/backend/base/langflow/inputs/__init__.py @@ -5,11 +5,12 @@ from .inputs import ( FileInput, FloatInput, IntInput, + MultilineInput, NestedDictInput, PromptInput, SecretStrInput, StrInput, - MultilineInput, + HandleInput, ) __all__ = [ @@ -24,4 +25,5 @@ __all__ = [ "FileInput", "PromptInput", "MultilineInput", + "HandleInput", ] diff --git a/src/backend/base/langflow/inputs/input_mixin.py b/src/backend/base/langflow/inputs/input_mixin.py index 917d1ea65..07e4f6338 100644 --- a/src/backend/base/langflow/inputs/input_mixin.py +++ b/src/backend/base/langflow/inputs/input_mixin.py @@ -25,7 +25,7 @@ SerializableFieldTypes = Annotated[FieldTypes, PlainSerializer(lambda v: v.value class BaseInputMixin(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True) - field_type: Optional[SerializableFieldTypes] = Field(default=FieldTypes.TEXT) + field_type: Optional[SerializableFieldTypes | str] = Field(default=FieldTypes.TEXT) required: bool = False """Specifies if the field is required. Defaults to False.""" diff --git a/src/backend/base/langflow/inputs/inputs.py b/src/backend/base/langflow/inputs/inputs.py index a59a76984..3342d6322 100644 --- a/src/backend/base/langflow/inputs/inputs.py +++ b/src/backend/base/langflow/inputs/inputs.py @@ -1,6 +1,6 @@ from typing import Callable, Optional, Union -from pydantic import Field +from pydantic import Field, model_validator from langflow.inputs.validators import StrictBoolean @@ -16,6 +16,17 @@ from .input_mixin import ( ) +class HandleInput(BaseInputMixin): + input_types: list[str] = Field(default_factory=list) + field_type: Optional[str] = "" + + @model_validator(mode="after") + def validate_model_type(self): + # FieldType should be a string + self.field_type = " | ".join(self.input_types) + return self + + class PromptInput(BaseInputMixin, ListableInputMixin): field_type: Optional[SerializableFieldTypes] = FieldTypes.PROMPT @@ -83,4 +94,5 @@ InputTypes = Union[ FileInput, PromptInput, MultilineInput, + HandleInput, ]