Inputs
Inputs are components used to define where data enters your flow. They can receive data from the user, a database, or any other source that can be converted to Text or Data.
The difference between Chat Input and Text Input is the output format, the number of configurable fields, and their appearance in the Playground.
Chat Input components can output Text or Data. When you want to pass the sender name or sender to the next component, use the Data output. To pass only the message, use the Text output, which is useful when saving the message to a database or memory system like Zep.
Chat input
This component accepts chat inputs in the Playground environment. It allows users to input messages, specify sender details, attach files, and optionally store messages in the chat history.
Parameters
Name | Display Name | Info |
---|---|---|
input_value |
Text |
Message to be passed as input. |
should_store_message |
Store Messages |
Store the message in the history. |
sender |
Sender Type |
Type of sender. |
sender_name |
Sender Name |
Name of the sender. |
session_id |
Session ID |
The session ID of the chat. |
files |
Files |
Files to be sent with the message. |
Name | Display Name | Info |
---|---|---|
message |
Message |
The response message. |
Message method
The ChatInput
class provides a method to create and store a Message
object based on the input parameters.
The Message object is created in the message_response
method of the ChatInput class. It is constructed using the input parameters provided to the ChatInput component.
message = Message(
text=self.input_value,
sender=self.sender,
sender_name=self.sender_name,
session_id=self.session_id,
files=self.files,
)
Component code
chat.py
from langflow.base.data.utils import IMG_FILE_TYPES, TEXT_FILE_TYPES
from langflow.base.io.chat import ChatComponent
from langflow.inputs import BoolInput
from langflow.io import DropdownInput, FileInput, MessageTextInput, MultilineInput, Output
from langflow.schema.message import Message
from langflow.utils.constants import MESSAGE_SENDER_AI, MESSAGE_SENDER_NAME_USER, MESSAGE_SENDER_USER
class ChatInput(ChatComponent):
display_name = "Chat Input"
description = "Get chat inputs from the Playground."
icon = "MessagesSquare"
name = "ChatInput"
inputs = [
MultilineInput(
name="input_value",
display_name="Text",
value="",
info="Message to be passed as input.",
),
BoolInput(
name="should_store_message",
display_name="Store Messages",
info="Store the message in the history.",
value=True,
advanced=True,
),
DropdownInput(
name="sender",
display_name="Sender Type",
options=[MESSAGE_SENDER_AI, MESSAGE_SENDER_USER],
value=MESSAGE_SENDER_USER,
info="Type of sender.",
advanced=True,
),
MessageTextInput(
name="sender_name",
display_name="Sender Name",
info="Name of the sender.",
value=MESSAGE_SENDER_NAME_USER,
advanced=True,
),
MessageTextInput(
name="session_id",
display_name="Session ID",
info="The session ID of the chat. If empty, the current session ID parameter will be used.",
advanced=True,
),
FileInput(
name="files",
display_name="Files",
file_types=TEXT_FILE_TYPES + IMG_FILE_TYPES,
info="Files to be sent with the message.",
advanced=True,
is_list=True,
),
MessageTextInput(
name="background_color",
display_name="Background Color",
info="The background color of the icon.",
advanced=True,
),
MessageTextInput(
name="chat_icon",
display_name="Icon",
info="The icon of the message.",
advanced=True,
),
MessageTextInput(
name="text_color",
display_name="Text Color",
info="The text color of the name",
advanced=True,
),
]
outputs = [
Output(display_name="Message", name="message", method="message_response"),
]
async def message_response(self) -> Message:
background_color = self.background_color
text_color = self.text_color
icon = self.chat_icon
message = await Message.create(
text=self.input_value,
sender=self.sender,
sender_name=self.sender_name,
session_id=self.session_id,
files=self.files,
properties={"background_color": background_color, "text_color": text_color, "icon": icon},
)
if self.session_id and isinstance(message, Message) and self.should_store_message:
stored_message = await self.send_message(
message,
)
self.message.value = stored_message
message = stored_message
self.status = message
return message
Text Input
This component accepts text messages in the Playground.
Parameters
Name | Display Name | Info |
---|---|---|
input_value |
Text |
Text to be passed as input. |
Name | Display Name | Info |
---|---|---|
text |
Text |
The response message containing the input text. |
Component code
text.py
from langflow.base.io.text import TextComponent
from langflow.io import MultilineInput, Output
from langflow.schema.message import Message
class TextInputComponent(TextComponent):
display_name = "Text Input"
description = "Get text inputs from the Playground."
icon = "type"
name = "TextInput"
inputs = [
MultilineInput(
name="input_value",
display_name="Text",
info="Text to be passed as input.",
),
]
outputs = [
Output(display_name="Text", name="text", method="text_response"),
]
def text_response(self) -> Message:
return Message(
text=self.input_value,
)