diff --git a/src/backend/base/langflow/components/inputs/ChatInput.py b/src/backend/base/langflow/components/inputs/ChatInput.py index 9f9a47b8b..9072d6ae8 100644 --- a/src/backend/base/langflow/components/inputs/ChatInput.py +++ b/src/backend/base/langflow/components/inputs/ChatInput.py @@ -44,6 +44,8 @@ class ChatInput(ChatComponent): Output(display_name="Text", name="text", method="text_response"), ] + _message_stored = False + def message_response(self) -> Message: message = Message( text=self.input_value, @@ -51,8 +53,10 @@ class ChatInput(ChatComponent): sender_name=self.sender_name, session_id=self.session_id, ) - if self.session_id and isinstance(message, (Message, str)) and isinstance(message.text, str): + if self.session_id and isinstance(message, Message) and isinstance(message.text, str) and not self._message_stored: self.store_message(message) + self._message_stored = True + self.status = message return message diff --git a/src/backend/base/langflow/components/outputs/ChatOutput.py b/src/backend/base/langflow/components/outputs/ChatOutput.py index 5a659e09e..f814a276b 100644 --- a/src/backend/base/langflow/components/outputs/ChatOutput.py +++ b/src/backend/base/langflow/components/outputs/ChatOutput.py @@ -39,6 +39,8 @@ class ChatOutput(ChatComponent): Output(display_name="Text", name="text", method="text_response"), ] + _message_stored = False + def message_response(self) -> Message: message = Message( text=self.input_value, @@ -46,8 +48,10 @@ class ChatOutput(ChatComponent): sender_name=self.sender_name, session_id=self.session_id, ) - if self.session_id and isinstance(message, Message) and isinstance(message.text, str): + if self.session_id and isinstance(message, Message) and isinstance(message.text, str) and not self._message_stored: self.store_message(message) + self._message_stored = True + self.status = message return message