diff --git a/src/backend/base/langflow/components/agents/ToolCallingAgent.py b/src/backend/base/langflow/components/agents/ToolCallingAgent.py index 3fceb5631..8c08d489b 100644 --- a/src/backend/base/langflow/components/agents/ToolCallingAgent.py +++ b/src/backend/base/langflow/components/agents/ToolCallingAgent.py @@ -5,7 +5,7 @@ from langchain.agents.tool_calling_agent.base import create_tool_calling_agent from langchain_core.prompts import ChatPromptTemplate from langflow.custom import Component -from langflow.io import BoolInput, HandleInput, Output, TextInput +from langflow.io import BoolInput, HandleInput, MessageTextInput, Output from langflow.schema import Data from langflow.schema.message import Message @@ -16,18 +16,18 @@ class ToolCallingAgentComponent(Component): icon = "LangChain" inputs = [ - TextInput( + MessageTextInput( name="system_prompt", display_name="System Prompt", info="System prompt for the agent.", value="You are a helpful assistant", ), - TextInput( + MessageTextInput( name="input_value", display_name="Inputs", info="Input text to pass to the agent.", ), - TextInput( + MessageTextInput( name="user_prompt", display_name="Prompt", info="This prompt must contain 'input' key.", diff --git a/src/backend/base/langflow/components/data/APIRequest.py b/src/backend/base/langflow/components/data/APIRequest.py index c41b26d9f..e92dc210e 100644 --- a/src/backend/base/langflow/components/data/APIRequest.py +++ b/src/backend/base/langflow/components/data/APIRequest.py @@ -8,7 +8,7 @@ from loguru import logger from langflow.base.curl.parse import parse_context from langflow.custom import Component -from langflow.io import DataInput, DropdownInput, IntInput, NestedDictInput, Output, TextInput +from langflow.io import DataInput, DropdownInput, IntInput, MessageTextInput, NestedDictInput, Output from langflow.schema import Data from langflow.schema.dotdict import dotdict @@ -24,13 +24,13 @@ class APIRequestComponent(Component): icon = "Globe" inputs = [ - TextInput( + MessageTextInput( name="urls", display_name="URLs", is_list=True, info="Enter one or more URLs, separated by commas.", ), - TextInput( + MessageTextInput( name="curl", display_name="Curl", info="Paste a curl command to populate the fields. This will fill in the dictionary fields for headers and body.", diff --git a/src/backend/base/langflow/components/data/Directory.py b/src/backend/base/langflow/components/data/Directory.py index 0b381274d..267869ebb 100644 --- a/src/backend/base/langflow/components/data/Directory.py +++ b/src/backend/base/langflow/components/data/Directory.py @@ -2,7 +2,7 @@ from typing import List, Optional from langflow.base.data.utils import parallel_load_data, parse_text_file_to_data, retrieve_file_paths from langflow.custom import Component -from langflow.io import BoolInput, IntInput, TextInput +from langflow.io import BoolInput, IntInput, MessageTextInput from langflow.schema import Data from langflow.template import Output @@ -13,12 +13,12 @@ class DirectoryComponent(Component): icon = "folder" inputs = [ - TextInput( + MessageTextInput( name="path", display_name="Path", info="Path to the directory to load files from.", ), - TextInput( + MessageTextInput( name="types", display_name="Types", info="File types to load. Leave empty to load all types.", diff --git a/src/backend/base/langflow/components/data/URL.py b/src/backend/base/langflow/components/data/URL.py index 37b4e8648..cdf7300a0 100644 --- a/src/backend/base/langflow/components/data/URL.py +++ b/src/backend/base/langflow/components/data/URL.py @@ -3,7 +3,7 @@ import re from langchain_community.document_loaders.web_base import WebBaseLoader from langflow.custom import Component -from langflow.io import Output, TextInput +from langflow.io import MessageTextInput, Output from langflow.schema import Data @@ -13,7 +13,7 @@ class URLComponent(Component): icon = "layout-template" inputs = [ - TextInput( + MessageTextInput( name="urls", display_name="URLs", info="Enter one or more URLs, separated by commas.", diff --git a/src/backend/base/langflow/components/embeddings/AmazonBedrockEmbeddings.py b/src/backend/base/langflow/components/embeddings/AmazonBedrockEmbeddings.py index 2c1c8bd48..9578bedc5 100644 --- a/src/backend/base/langflow/components/embeddings/AmazonBedrockEmbeddings.py +++ b/src/backend/base/langflow/components/embeddings/AmazonBedrockEmbeddings.py @@ -1,7 +1,8 @@ from langchain_community.embeddings import BedrockEmbeddings + from langflow.base.models.model import LCModelComponent from langflow.field_typing import Embeddings -from langflow.io import DropdownInput, Output, TextInput +from langflow.io import DropdownInput, MessageTextInput, Output class AmazonBedrockEmbeddingsComponent(LCModelComponent): @@ -17,15 +18,15 @@ class AmazonBedrockEmbeddingsComponent(LCModelComponent): options=["amazon.titan-embed-text-v1"], value="amazon.titan-embed-text-v1", ), - TextInput( + MessageTextInput( name="credentials_profile_name", display_name="Credentials Profile Name", ), - TextInput( + MessageTextInput( name="endpoint_url", display_name="Bedrock Endpoint URL", ), - TextInput( + MessageTextInput( name="region_name", display_name="AWS Region", ), diff --git a/src/backend/base/langflow/components/embeddings/AzureOpenAIEmbeddings.py b/src/backend/base/langflow/components/embeddings/AzureOpenAIEmbeddings.py index 927520c75..c838b328e 100644 --- a/src/backend/base/langflow/components/embeddings/AzureOpenAIEmbeddings.py +++ b/src/backend/base/langflow/components/embeddings/AzureOpenAIEmbeddings.py @@ -3,7 +3,7 @@ from pydantic.v1 import SecretStr from langflow.base.models.model import LCModelComponent from langflow.field_typing import Embeddings -from langflow.io import DropdownInput, IntInput, Output, SecretStrInput, TextInput +from langflow.io import DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput class AzureOpenAIEmbeddingsComponent(LCModelComponent): @@ -22,13 +22,13 @@ class AzureOpenAIEmbeddingsComponent(LCModelComponent): ] inputs = [ - TextInput( + MessageTextInput( name="azure_endpoint", display_name="Azure Endpoint", required=True, info="Your Azure endpoint, including the resource. Example: `https://example-resource.azure.openai.com/`", ), - TextInput( + MessageTextInput( name="azure_deployment", display_name="Deployment Name", required=True, diff --git a/src/backend/base/langflow/components/embeddings/CohereEmbeddings.py b/src/backend/base/langflow/components/embeddings/CohereEmbeddings.py index 7c4062c99..80967becf 100644 --- a/src/backend/base/langflow/components/embeddings/CohereEmbeddings.py +++ b/src/backend/base/langflow/components/embeddings/CohereEmbeddings.py @@ -2,7 +2,7 @@ from langchain_community.embeddings.cohere import CohereEmbeddings from langflow.base.models.model import LCModelComponent from langflow.field_typing import Embeddings -from langflow.io import DropdownInput, FloatInput, IntInput, Output, SecretStrInput, TextInput +from langflow.io import DropdownInput, FloatInput, IntInput, MessageTextInput, Output, SecretStrInput class CohereEmbeddingsComponent(LCModelComponent): @@ -23,9 +23,9 @@ class CohereEmbeddingsComponent(LCModelComponent): ], value="embed-english-v2.0", ), - TextInput(name="truncate", display_name="Truncate", advanced=True), + MessageTextInput(name="truncate", display_name="Truncate", advanced=True), IntInput(name="max_retries", display_name="Max Retries", value=3, advanced=True), - TextInput(name="user_agent", display_name="User Agent", advanced=True, value="langchain"), + MessageTextInput(name="user_agent", display_name="User Agent", advanced=True, value="langchain"), FloatInput(name="request_timeout", display_name="Request Timeout", advanced=True), ] diff --git a/src/backend/base/langflow/components/embeddings/HuggingFaceEmbeddings.py b/src/backend/base/langflow/components/embeddings/HuggingFaceEmbeddings.py index 86a6d909c..fda48b2a3 100644 --- a/src/backend/base/langflow/components/embeddings/HuggingFaceEmbeddings.py +++ b/src/backend/base/langflow/components/embeddings/HuggingFaceEmbeddings.py @@ -2,7 +2,7 @@ from langchain_community.embeddings.huggingface import HuggingFaceEmbeddings from langflow.base.models.model import LCModelComponent from langflow.field_typing import Embeddings -from langflow.io import BoolInput, DictInput, TextInput, Output +from langflow.io import BoolInput, DictInput, MessageTextInput, Output class HuggingFaceEmbeddingsComponent(LCModelComponent): @@ -14,10 +14,10 @@ class HuggingFaceEmbeddingsComponent(LCModelComponent): icon = "HuggingFace" inputs = [ - TextInput(name="cache_folder", display_name="Cache Folder", advanced=True), + MessageTextInput(name="cache_folder", display_name="Cache Folder", advanced=True), DictInput(name="encode_kwargs", display_name="Encode Kwargs", advanced=True), DictInput(name="model_kwargs", display_name="Model Kwargs", advanced=True), - TextInput(name="model_name", display_name="Model Name", value="sentence-transformers/all-mpnet-base-v2"), + MessageTextInput(name="model_name", display_name="Model Name", value="sentence-transformers/all-mpnet-base-v2"), BoolInput(name="multi_process", display_name="Multi Process", advanced=True), ] diff --git a/src/backend/base/langflow/components/embeddings/HuggingFaceInferenceAPIEmbeddings.py b/src/backend/base/langflow/components/embeddings/HuggingFaceInferenceAPIEmbeddings.py index cd80f7b47..215ba9442 100644 --- a/src/backend/base/langflow/components/embeddings/HuggingFaceInferenceAPIEmbeddings.py +++ b/src/backend/base/langflow/components/embeddings/HuggingFaceInferenceAPIEmbeddings.py @@ -3,7 +3,7 @@ from pydantic.v1.types import SecretStr from langflow.base.models.model import LCModelComponent from langflow.field_typing import Embeddings -from langflow.io import Output, SecretStrInput, TextInput +from langflow.io import MessageTextInput, Output, SecretStrInput class HuggingFaceInferenceAPIEmbeddingsComponent(LCModelComponent): @@ -14,8 +14,8 @@ class HuggingFaceInferenceAPIEmbeddingsComponent(LCModelComponent): inputs = [ SecretStrInput(name="api_key", display_name="API Key", advanced=True), - TextInput(name="api_url", display_name="API URL", advanced=True, value="http://localhost:8080"), - TextInput(name="model_name", display_name="Model Name", value="BAAI/bge-large-en-v1.5"), + MessageTextInput(name="api_url", display_name="API URL", advanced=True, value="http://localhost:8080"), + MessageTextInput(name="model_name", display_name="Model Name", value="BAAI/bge-large-en-v1.5"), ] outputs = [ diff --git a/src/backend/base/langflow/components/embeddings/MistalAIEmbeddings.py b/src/backend/base/langflow/components/embeddings/MistalAIEmbeddings.py index 145aed76d..39e63c53c 100644 --- a/src/backend/base/langflow/components/embeddings/MistalAIEmbeddings.py +++ b/src/backend/base/langflow/components/embeddings/MistalAIEmbeddings.py @@ -3,7 +3,7 @@ from pydantic.v1 import SecretStr from langflow.base.models.model import LCModelComponent from langflow.field_typing import Embeddings -from langflow.io import DropdownInput, IntInput, Output, SecretStrInput, TextInput +from langflow.io import DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput class MistralAIEmbeddingsComponent(LCModelComponent): @@ -28,7 +28,7 @@ class MistralAIEmbeddingsComponent(LCModelComponent): ), IntInput(name="max_retries", display_name="Max Retries", advanced=True, value=5), IntInput(name="timeout", display_name="Request Timeout", advanced=True, value=120), - TextInput( + MessageTextInput( name="endpoint", display_name="API Endpoint", advanced=True, diff --git a/src/backend/base/langflow/components/embeddings/OllamaEmbeddings.py b/src/backend/base/langflow/components/embeddings/OllamaEmbeddings.py index a9f832dee..430a8de29 100644 --- a/src/backend/base/langflow/components/embeddings/OllamaEmbeddings.py +++ b/src/backend/base/langflow/components/embeddings/OllamaEmbeddings.py @@ -1,7 +1,8 @@ from langchain_community.embeddings import OllamaEmbeddings + from langflow.base.models.model import LCModelComponent from langflow.field_typing import Embeddings -from langflow.io import FloatInput, Output, TextInput +from langflow.io import FloatInput, MessageTextInput, Output class OllamaEmbeddingsComponent(LCModelComponent): @@ -11,12 +12,12 @@ class OllamaEmbeddingsComponent(LCModelComponent): icon = "Ollama" inputs = [ - TextInput( + MessageTextInput( name="model", display_name="Ollama Model", value="llama2", ), - TextInput( + MessageTextInput( name="base_url", display_name="Ollama Base URL", value="http://localhost:11434", diff --git a/src/backend/base/langflow/components/embeddings/OpenAIEmbeddings.py b/src/backend/base/langflow/components/embeddings/OpenAIEmbeddings.py index 6e868a7ce..039caea24 100644 --- a/src/backend/base/langflow/components/embeddings/OpenAIEmbeddings.py +++ b/src/backend/base/langflow/components/embeddings/OpenAIEmbeddings.py @@ -2,7 +2,7 @@ from langchain_openai.embeddings.base import OpenAIEmbeddings from langflow.base.embeddings.model import LCEmbeddingsModel from langflow.field_typing import Embeddings -from langflow.io import BoolInput, DictInput, DropdownInput, FloatInput, IntInput, SecretStrInput, TextInput +from langflow.io import BoolInput, DictInput, DropdownInput, FloatInput, IntInput, MessageTextInput, SecretStrInput class OpenAIEmbeddingsComponent(LCEmbeddingsModel): @@ -23,8 +23,8 @@ class OpenAIEmbeddingsComponent(LCEmbeddingsModel): info="Default query parameters to use for the API request.", ), IntInput(name="chunk_size", display_name="Chunk Size", advanced=True, value=1000), - TextInput(name="client", display_name="Client", advanced=True), - TextInput(name="deployment", display_name="Deployment", advanced=True), + MessageTextInput(name="client", display_name="Client", advanced=True), + MessageTextInput(name="deployment", display_name="Deployment", advanced=True), IntInput(name="embedding_ctx_length", display_name="Embedding Context Length", advanced=True, value=1536), IntInput(name="max_retries", display_name="Max Retries", value=3, advanced=True), DropdownInput( @@ -42,17 +42,17 @@ class OpenAIEmbeddingsComponent(LCEmbeddingsModel): SecretStrInput(name="openai_api_base", display_name="OpenAI API Base", advanced=True), SecretStrInput(name="openai_api_key", display_name="OpenAI API Key"), SecretStrInput(name="openai_api_type", display_name="OpenAI API Type", advanced=True), - TextInput(name="openai_api_version", display_name="OpenAI API Version", advanced=True), - TextInput( + MessageTextInput(name="openai_api_version", display_name="OpenAI API Version", advanced=True), + MessageTextInput( name="openai_organization", display_name="OpenAI Organization", advanced=True, ), - TextInput(name="openai_proxy", display_name="OpenAI Proxy", advanced=True), + MessageTextInput(name="openai_proxy", display_name="OpenAI Proxy", advanced=True), FloatInput(name="request_timeout", display_name="Request Timeout", advanced=True), BoolInput(name="show_progress_bar", display_name="Show Progress Bar", advanced=True), BoolInput(name="skip_empty", display_name="Skip Empty", advanced=True), - TextInput( + MessageTextInput( name="tiktoken_model_name", display_name="TikToken Model Name", advanced=True, diff --git a/src/backend/base/langflow/components/embeddings/VertexAIEmbeddings.py b/src/backend/base/langflow/components/embeddings/VertexAIEmbeddings.py index 28b1f1c7c..31c1ae528 100644 --- a/src/backend/base/langflow/components/embeddings/VertexAIEmbeddings.py +++ b/src/backend/base/langflow/components/embeddings/VertexAIEmbeddings.py @@ -1,6 +1,6 @@ from langflow.base.models.model import LCModelComponent from langflow.field_typing import Embeddings -from langflow.io import BoolInput, DictInput, FileInput, FloatInput, IntInput, Output, TextInput +from langflow.io import BoolInput, DictInput, FileInput, FloatInput, IntInput, MessageTextInput, Output class VertexAIEmbeddingsComponent(LCModelComponent): @@ -20,7 +20,7 @@ class VertexAIEmbeddingsComponent(LCModelComponent): display_name="Instance", advanced=True, ), - TextInput( + MessageTextInput( name="location", display_name="Location", value="us-central1", @@ -37,7 +37,7 @@ class VertexAIEmbeddingsComponent(LCModelComponent): value=6, advanced=True, ), - TextInput( + MessageTextInput( name="model_name", display_name="Model Name", value="textembedding-gecko", @@ -48,7 +48,7 @@ class VertexAIEmbeddingsComponent(LCModelComponent): value=1, advanced=True, ), - TextInput( + MessageTextInput( name="project", display_name="Project", advanced=True, @@ -59,7 +59,7 @@ class VertexAIEmbeddingsComponent(LCModelComponent): value=5, advanced=True, ), - TextInput( + MessageTextInput( name="stop", display_name="Stop", advanced=True, diff --git a/src/backend/base/langflow/components/experimental/ConditionalRouter.py b/src/backend/base/langflow/components/experimental/ConditionalRouter.py index 697b67fd6..8305730ba 100644 --- a/src/backend/base/langflow/components/experimental/ConditionalRouter.py +++ b/src/backend/base/langflow/components/experimental/ConditionalRouter.py @@ -1,5 +1,5 @@ from langflow.custom import Component -from langflow.io import BoolInput, DropdownInput, MessageInput, Output, TextInput +from langflow.io import BoolInput, DropdownInput, MessageInput, MessageTextInput, Output from langflow.schema.message import Message @@ -9,12 +9,12 @@ class ConditionalRouterComponent(Component): icon = "equal" inputs = [ - TextInput( + MessageTextInput( name="input_text", display_name="Input Text", info="The primary text input for the operation.", ), - TextInput( + MessageTextInput( name="match_text", display_name="Match Text", info="The text input to compare against.", diff --git a/src/backend/base/langflow/components/experimental/SelectivePassThrough.py b/src/backend/base/langflow/components/experimental/SelectivePassThrough.py index a0aba72ff..605b54dfe 100644 --- a/src/backend/base/langflow/components/experimental/SelectivePassThrough.py +++ b/src/backend/base/langflow/components/experimental/SelectivePassThrough.py @@ -1,6 +1,6 @@ from langflow.custom import Component from langflow.field_typing import Text -from langflow.io import BoolInput, DropdownInput, Output, TextInput +from langflow.io import BoolInput, DropdownInput, MessageTextInput, Output class SelectivePassThroughComponent(Component): @@ -9,12 +9,12 @@ class SelectivePassThroughComponent(Component): icon = "filter" inputs = [ - TextInput( + MessageTextInput( name="input_value", display_name="Input Value", info="The primary input value to evaluate.", ), - TextInput( + MessageTextInput( name="comparison_value", display_name="Comparison Value", info="The value to compare against the input value.", @@ -25,7 +25,7 @@ class SelectivePassThroughComponent(Component): options=["equals", "not equals", "contains", "starts with", "ends with"], info="Condition to evaluate the input value.", ), - TextInput( + MessageTextInput( name="value_to_pass", display_name="Value to Pass", info="The value to pass if the condition is met.", diff --git a/src/backend/base/langflow/components/experimental/SplitText.py b/src/backend/base/langflow/components/experimental/SplitText.py index 73e87504c..f3529baf3 100644 --- a/src/backend/base/langflow/components/experimental/SplitText.py +++ b/src/backend/base/langflow/components/experimental/SplitText.py @@ -1,8 +1,9 @@ from typing import List from langchain_text_splitters import CharacterTextSplitter + from langflow.custom import Component -from langflow.io import HandleInput, IntInput, Output, TextInput +from langflow.io import HandleInput, IntInput, MessageTextInput, Output from langflow.schema import Data from langflow.utils.util import unescape_string @@ -32,7 +33,7 @@ class SplitTextComponent(Component): info="The maximum number of characters in each chunk.", value=1000, ), - TextInput( + MessageTextInput( name="separator", display_name="Separator", info="The character to split on. Defaults to newline.", diff --git a/src/backend/base/langflow/components/helpers/CombineText.py b/src/backend/base/langflow/components/helpers/CombineText.py index cb7ff8d04..6bb3246c0 100644 --- a/src/backend/base/langflow/components/helpers/CombineText.py +++ b/src/backend/base/langflow/components/helpers/CombineText.py @@ -1,5 +1,5 @@ from langflow.custom import Component -from langflow.io import Output, TextInput +from langflow.io import MessageTextInput, Output from langflow.schema.message import Message @@ -9,17 +9,17 @@ class CombineTextComponent(Component): icon = "merge" inputs = [ - TextInput( + MessageTextInput( name="text1", display_name="First Text", info="The first text input to concatenate.", ), - TextInput( + MessageTextInput( name="text2", display_name="Second Text", info="The second text input to concatenate.", ), - TextInput( + MessageTextInput( name="delimiter", display_name="Delimiter", info="A string used to separate the two text inputs. Defaults to a whitespace.", diff --git a/src/backend/base/langflow/components/helpers/CustomComponent.py b/src/backend/base/langflow/components/helpers/CustomComponent.py index 791932c2d..1ff54fe80 100644 --- a/src/backend/base/langflow/components/helpers/CustomComponent.py +++ b/src/backend/base/langflow/components/helpers/CustomComponent.py @@ -1,6 +1,6 @@ # from langflow.field_typing import Data from langflow.custom import Component -from langflow.io import Output, TextInput +from langflow.io import MessageTextInput, Output from langflow.schema import Data @@ -11,7 +11,7 @@ class CustomComponent(Component): icon = "custom_components" inputs = [ - TextInput(name="input_value", display_name="Input Value", value="Hello, World!"), + MessageTextInput(name="input_value", display_name="Input Value", value="Hello, World!"), ] outputs = [ diff --git a/src/backend/base/langflow/components/helpers/FilterData.py b/src/backend/base/langflow/components/helpers/FilterData.py index 71e91e5f4..e589c2aa5 100644 --- a/src/backend/base/langflow/components/helpers/FilterData.py +++ b/src/backend/base/langflow/components/helpers/FilterData.py @@ -1,7 +1,7 @@ from typing import List from langflow.custom import Component -from langflow.io import DataInput, Output, TextInput +from langflow.io import DataInput, MessageTextInput, Output from langflow.schema import Data @@ -16,7 +16,7 @@ class FilterDataComponent(Component): display_name="Data", info="Data object to filter.", ), - TextInput( + MessageTextInput( name="filter_criteria", display_name="Filter Criteria", info="List of keys to filter by.", diff --git a/src/backend/base/langflow/components/helpers/Memory.py b/src/backend/base/langflow/components/helpers/Memory.py index 0d73d0499..757526bba 100644 --- a/src/backend/base/langflow/components/helpers/Memory.py +++ b/src/backend/base/langflow/components/helpers/Memory.py @@ -1,6 +1,6 @@ from langflow.custom import Component from langflow.helpers.data import data_to_text -from langflow.io import DropdownInput, IntInput, MultilineInput, Output, TextInput +from langflow.io import DropdownInput, IntInput, MessageTextInput, MultilineInput, Output from langflow.memory import get_messages from langflow.schema import Data from langflow.schema.message import Message @@ -20,7 +20,7 @@ class MemoryComponent(Component): info="Type of sender.", advanced=True, ), - TextInput( + MessageTextInput( name="sender_name", display_name="Sender Name", info="Name of the sender.", @@ -33,7 +33,7 @@ class MemoryComponent(Component): info="Number of messages to retrieve.", advanced=True, ), - TextInput( + MessageTextInput( name="session_id", display_name="Session ID", info="Session ID of the chat history.", diff --git a/src/backend/base/langflow/components/inputs/ChatInput.py b/src/backend/base/langflow/components/inputs/ChatInput.py index 847b6809a..4d42dece4 100644 --- a/src/backend/base/langflow/components/inputs/ChatInput.py +++ b/src/backend/base/langflow/components/inputs/ChatInput.py @@ -1,6 +1,6 @@ from langflow.base.data.utils import IMG_FILE_TYPES, TEXT_FILE_TYPES from langflow.base.io.chat import ChatComponent -from langflow.io import DropdownInput, FileInput, MultilineInput, Output, TextInput +from langflow.io import DropdownInput, FileInput, MessageTextInput, MultilineInput, Output from langflow.schema.message import Message @@ -24,14 +24,16 @@ class ChatInput(ChatComponent): info="Type of sender.", advanced=True, ), - TextInput( + MessageTextInput( name="sender_name", display_name="Sender Name", info="Name of the sender.", value="User", advanced=True, ), - TextInput(name="session_id", display_name="Session ID", info="Session ID for the message.", advanced=True), + MessageTextInput( + name="session_id", display_name="Session ID", info="Session ID for the message.", advanced=True + ), FileInput( name="files", display_name="Files", diff --git a/src/backend/base/langflow/components/inputs/TextInput.py b/src/backend/base/langflow/components/inputs/TextInput.py index 201031ebc..f05398369 100644 --- a/src/backend/base/langflow/components/inputs/TextInput.py +++ b/src/backend/base/langflow/components/inputs/TextInput.py @@ -1,5 +1,5 @@ from langflow.base.io.text import TextComponent -from langflow.io import Output, TextInput +from langflow.io import MessageTextInput, Output from langflow.schema.message import Message @@ -9,7 +9,7 @@ class TextInputComponent(TextComponent): icon = "type" inputs = [ - TextInput( + MessageTextInput( name="input_value", display_name="Text", info="Text to be passed as input.", diff --git a/src/backend/base/langflow/components/models/AnthropicModel.py b/src/backend/base/langflow/components/models/AnthropicModel.py index dd7ccb4f5..4a750b645 100644 --- a/src/backend/base/langflow/components/models/AnthropicModel.py +++ b/src/backend/base/langflow/components/models/AnthropicModel.py @@ -4,7 +4,7 @@ from pydantic.v1 import SecretStr from langflow.base.constants import STREAM_INFO_TEXT from langflow.base.models.model import LCModelComponent from langflow.field_typing import LanguageModel -from langflow.io import BoolInput, DropdownInput, FloatInput, IntInput, Output, SecretStrInput, TextInput +from langflow.io import BoolInput, DropdownInput, FloatInput, IntInput, MessageTextInput, Output, SecretStrInput class AnthropicModelComponent(LCModelComponent): @@ -13,7 +13,7 @@ class AnthropicModelComponent(LCModelComponent): icon = "Anthropic" inputs = [ - TextInput(name="input_value", display_name="Input"), + MessageTextInput(name="input_value", display_name="Input"), IntInput( name="max_tokens", display_name="Max Tokens", @@ -39,20 +39,20 @@ class AnthropicModelComponent(LCModelComponent): info="Your Anthropic API key.", ), FloatInput(name="temperature", display_name="Temperature", value=0.1), - TextInput( + MessageTextInput( name="anthropic_api_url", display_name="Anthropic API URL", advanced=True, info="Endpoint of the Anthropic API. Defaults to 'https://api.anthropic.com' if not specified.", ), BoolInput(name="stream", display_name="Stream", info=STREAM_INFO_TEXT, advanced=True, value=False), - TextInput( + MessageTextInput( name="system_message", display_name="System Message", info="System message to pass to the model.", advanced=True, ), - TextInput( + MessageTextInput( name="prefill", display_name="Prefill", info="Prefill text to guide the model's response.", diff --git a/src/backend/base/langflow/components/models/BaiduQianfanChatModel.py b/src/backend/base/langflow/components/models/BaiduQianfanChatModel.py index e131fb1a7..c8c9d38a9 100644 --- a/src/backend/base/langflow/components/models/BaiduQianfanChatModel.py +++ b/src/backend/base/langflow/components/models/BaiduQianfanChatModel.py @@ -4,7 +4,7 @@ from pydantic.v1 import SecretStr from langflow.base.constants import STREAM_INFO_TEXT from langflow.base.models.model import LCModelComponent from langflow.field_typing.constants import LanguageModel -from langflow.io import BoolInput, DropdownInput, FloatInput, Output, SecretStrInput, TextInput +from langflow.io import BoolInput, DropdownInput, FloatInput, MessageTextInput, Output, SecretStrInput class QianfanChatEndpointComponent(LCModelComponent): @@ -14,7 +14,7 @@ class QianfanChatEndpointComponent(LCModelComponent): icon = "BaiduQianfan" inputs = [ - TextInput( + MessageTextInput( name="input_value", display_name="Input", ), @@ -66,7 +66,7 @@ class QianfanChatEndpointComponent(LCModelComponent): value=1.0, advanced=True, ), - TextInput( + MessageTextInput( name="endpoint", display_name="Endpoint", info="Endpoint of the Qianfan LLM, required if custom model used.", @@ -77,7 +77,7 @@ class QianfanChatEndpointComponent(LCModelComponent): info=STREAM_INFO_TEXT, advanced=True, ), - TextInput( + MessageTextInput( name="system_message", display_name="System Message", info="System message to pass to the model.", diff --git a/src/backend/base/langflow/components/models/GroqModel.py b/src/backend/base/langflow/components/models/GroqModel.py index e7f5330c8..a4784354f 100644 --- a/src/backend/base/langflow/components/models/GroqModel.py +++ b/src/backend/base/langflow/components/models/GroqModel.py @@ -5,7 +5,7 @@ from langflow.base.constants import STREAM_INFO_TEXT from langflow.base.models.groq_constants import MODEL_NAMES from langflow.base.models.model import LCModelComponent from langflow.field_typing import LanguageModel -from langflow.io import BoolInput, DropdownInput, FloatInput, IntInput, SecretStrInput, TextInput +from langflow.io import BoolInput, DropdownInput, FloatInput, IntInput, MessageTextInput, SecretStrInput class GroqModel(LCModelComponent): @@ -19,7 +19,7 @@ class GroqModel(LCModelComponent): display_name="Groq API Key", info="API key for the Groq API.", ), - TextInput( + MessageTextInput( name="groq_api_base", display_name="Groq API Base", info="Base URL path for API requests, leave blank if not using a proxy or service emulator.", @@ -49,7 +49,7 @@ class GroqModel(LCModelComponent): info="The name of the model to use.", options=MODEL_NAMES, ), - TextInput( + MessageTextInput( name="input_value", display_name="Input", info="The input to the model.", @@ -60,7 +60,7 @@ class GroqModel(LCModelComponent): info=STREAM_INFO_TEXT, advanced=True, ), - TextInput( + MessageTextInput( name="system_message", display_name="System Message", info="System message to pass to the model.", diff --git a/src/backend/base/langflow/components/outputs/ChatOutput.py b/src/backend/base/langflow/components/outputs/ChatOutput.py index f2e5b426d..534ccf2f0 100644 --- a/src/backend/base/langflow/components/outputs/ChatOutput.py +++ b/src/backend/base/langflow/components/outputs/ChatOutput.py @@ -1,5 +1,5 @@ from langflow.base.io.chat import ChatComponent -from langflow.io import DropdownInput, Output, TextInput +from langflow.io import DropdownInput, MessageTextInput, Output from langflow.schema.message import Message @@ -9,7 +9,7 @@ class ChatOutput(ChatComponent): icon = "ChatOutput" inputs = [ - TextInput( + MessageTextInput( name="input_value", display_name="Text", info="Message to be passed as output.", @@ -22,11 +22,13 @@ class ChatOutput(ChatComponent): advanced=True, info="Type of sender.", ), - TextInput( + MessageTextInput( name="sender_name", display_name="Sender Name", info="Name of the sender.", value="AI", advanced=True ), - TextInput(name="session_id", display_name="Session ID", info="Session ID for the message.", advanced=True), - TextInput( + MessageTextInput( + name="session_id", display_name="Session ID", info="Session ID for the message.", advanced=True + ), + MessageTextInput( name="data_template", display_name="Data Template", value="{text}", diff --git a/src/backend/base/langflow/components/outputs/TextOutput.py b/src/backend/base/langflow/components/outputs/TextOutput.py index 5e3809a2b..4bd03e2e0 100644 --- a/src/backend/base/langflow/components/outputs/TextOutput.py +++ b/src/backend/base/langflow/components/outputs/TextOutput.py @@ -1,5 +1,5 @@ from langflow.base.io.text import TextComponent -from langflow.io import Output, TextInput +from langflow.io import MessageTextInput, Output from langflow.schema.message import Message @@ -9,7 +9,7 @@ class TextOutputComponent(TextComponent): icon = "type" inputs = [ - TextInput( + MessageTextInput( name="input_value", display_name="Text", info="Text to be passed as output.", diff --git a/src/backend/base/langflow/components/retrievers/CohereRerank.py b/src/backend/base/langflow/components/retrievers/CohereRerank.py index 939ee3989..7eedc1ee0 100644 --- a/src/backend/base/langflow/components/retrievers/CohereRerank.py +++ b/src/backend/base/langflow/components/retrievers/CohereRerank.py @@ -5,7 +5,7 @@ from langchain_cohere import CohereRerank from langflow.base.vectorstores.model import LCVectorStoreComponent from langflow.field_typing import Retriever -from langflow.io import DropdownInput, HandleInput, IntInput, MultilineInput, SecretStrInput, TextInput +from langflow.io import DropdownInput, HandleInput, IntInput, MessageTextInput, MultilineInput, SecretStrInput from langflow.schema import Data @@ -32,7 +32,7 @@ class CohereRerankComponent(LCVectorStoreComponent): ), SecretStrInput(name="api_key", display_name="API Key"), IntInput(name="top_n", display_name="Top N", value=3), - TextInput(name="user_agent", display_name="User Agent", value="langflow", advanced=True), + MessageTextInput(name="user_agent", display_name="User Agent", value="langflow", advanced=True), HandleInput(name="retriever", display_name="Retriever", input_types=["Retriever"]), ] diff --git a/src/backend/base/langflow/components/textsplitters/RecursiveCharacterTextSplitter.py b/src/backend/base/langflow/components/textsplitters/RecursiveCharacterTextSplitter.py index f5e44c5e2..f1385f165 100644 --- a/src/backend/base/langflow/components/textsplitters/RecursiveCharacterTextSplitter.py +++ b/src/backend/base/langflow/components/textsplitters/RecursiveCharacterTextSplitter.py @@ -1,7 +1,7 @@ from langchain_text_splitters import RecursiveCharacterTextSplitter from langflow.custom import Component -from langflow.inputs.inputs import DataInput, IntInput, TextInput +from langflow.inputs.inputs import DataInput, IntInput, MessageTextInput from langflow.schema import Data from langflow.template.field.base import Output from langflow.utils.util import build_loader_repr_from_data, unescape_string @@ -31,7 +31,7 @@ class RecursiveCharacterTextSplitterComponent(Component): info="The texts to split.", input_types=["Document", "Data"], ), - TextInput( + MessageTextInput( name="separators", display_name="Separators", info='The characters to split on.\nIf left empty defaults to ["\\n\\n", "\\n", " ", ""].', diff --git a/src/backend/base/langflow/components/vectorstores/Cassandra.py b/src/backend/base/langflow/components/vectorstores/Cassandra.py index 0ce933d43..0e4e9eb84 100644 --- a/src/backend/base/langflow/components/vectorstores/Cassandra.py +++ b/src/backend/base/langflow/components/vectorstores/Cassandra.py @@ -5,13 +5,13 @@ from langchain_community.vectorstores import Cassandra from langflow.base.vectorstores.model import LCVectorStoreComponent from langflow.helpers.data import docs_to_data from langflow.io import ( + DataInput, DropdownInput, HandleInput, IntInput, - SecretStrInput, - TextInput, - DataInput, + MessageTextInput, MultilineInput, + SecretStrInput, ) from langflow.schema import Data @@ -29,14 +29,14 @@ class CassandraVectorStoreComponent(LCVectorStoreComponent): info="Authentication token for accessing Cassandra on Astra DB.", required=True, ), - TextInput(name="database_id", display_name="Database ID", info="The Astra database ID.", required=True), - TextInput( + MessageTextInput(name="database_id", display_name="Database ID", info="The Astra database ID.", required=True), + MessageTextInput( name="table_name", display_name="Table Name", info="The name of the table where vectors will be stored.", required=True, ), - TextInput( + MessageTextInput( name="keyspace", display_name="Keyspace", info="Optional key space within Astra DB. The keyspace should already be created.", @@ -55,7 +55,7 @@ class CassandraVectorStoreComponent(LCVectorStoreComponent): value=16, advanced=True, ), - TextInput( + MessageTextInput( name="body_index_options", display_name="Body Index Options", info="Optional options used to create the body index.", diff --git a/src/backend/base/langflow/inputs/__init__.py b/src/backend/base/langflow/inputs/__init__.py index 41f03c9d2..ffa3f4486 100644 --- a/src/backend/base/langflow/inputs/__init__.py +++ b/src/backend/base/langflow/inputs/__init__.py @@ -8,12 +8,12 @@ from .inputs import ( HandleInput, IntInput, MessageInput, + MessageTextInput, MultilineInput, NestedDictInput, PromptInput, SecretStrInput, StrInput, - TextInput, ) __all__ = [ @@ -31,5 +31,5 @@ __all__ = [ "PromptInput", "SecretStrInput", "StrInput", - "TextInput", + "MessageTextInput", ] diff --git a/src/backend/base/langflow/inputs/inputs.py b/src/backend/base/langflow/inputs/inputs.py index 0449dcda1..b88c5db7a 100644 --- a/src/backend/base/langflow/inputs/inputs.py +++ b/src/backend/base/langflow/inputs/inputs.py @@ -116,7 +116,7 @@ class MessageInput(StrInput, InputTraceMixin): raise ValueError(f"Invalid value type {type(v)}") -class TextInput(StrInput, MetadataTraceMixin, InputTraceMixin): +class MessageTextInput(StrInput, MetadataTraceMixin, InputTraceMixin): """ Represents a text input component for the Langflow system. @@ -165,7 +165,7 @@ class TextInput(StrInput, MetadataTraceMixin, InputTraceMixin): return value -class MultilineInput(TextInput, MultilineMixin, InputTraceMixin): +class MultilineInput(MessageTextInput, MultilineMixin, InputTraceMixin): """ Represents a multiline input field. @@ -317,6 +317,6 @@ InputTypes = Union[ PromptInput, SecretStrInput, StrInput, - TextInput, + MessageTextInput, MessageInput, ] diff --git a/src/backend/base/langflow/io/__init__.py b/src/backend/base/langflow/io/__init__.py index 53bafb92d..63e859925 100644 --- a/src/backend/base/langflow/io/__init__.py +++ b/src/backend/base/langflow/io/__init__.py @@ -8,12 +8,12 @@ from langflow.inputs import ( HandleInput, IntInput, MessageInput, + MessageTextInput, MultilineInput, NestedDictInput, PromptInput, SecretStrInput, StrInput, - TextInput, ) from langflow.template import Output @@ -32,6 +32,6 @@ __all__ = [ "PromptInput", "SecretStrInput", "StrInput", - "TextInput", + "MessageTextInput", "Output", ] diff --git a/tests/data/component_multiple_outputs.py b/tests/data/component_multiple_outputs.py index e0a5f6846..bb864aa06 100644 --- a/tests/data/component_multiple_outputs.py +++ b/tests/data/component_multiple_outputs.py @@ -1,11 +1,11 @@ from langflow.custom import Component -from langflow.inputs.inputs import IntInput, TextInput +from langflow.inputs.inputs import IntInput, MessageTextInput from langflow.template.field.base import Output class MultipleOutputsComponent(Component): inputs = [ - TextInput(display_name="Input", name="input"), + MessageTextInput(display_name="Input", name="input"), IntInput(display_name="Number", name="number"), ] outputs = [ diff --git a/tests/data/component_nested_call.py b/tests/data/component_nested_call.py index 8dbc33cc4..5dd61c2ba 100644 --- a/tests/data/component_nested_call.py +++ b/tests/data/component_nested_call.py @@ -1,13 +1,13 @@ from random import randint from langflow.custom import Component -from langflow.inputs.inputs import IntInput, TextInput +from langflow.inputs.inputs import IntInput, MessageTextInput from langflow.template.field.base import Output class MultipleOutputsComponent(Component): inputs = [ - TextInput(display_name="Input", name="input"), + MessageTextInput(display_name="Input", name="input"), IntInput(display_name="Number", name="number"), ] outputs = [