From abf1582fe6cb04aa3d428de0f09c53420a604344 Mon Sep 17 00:00:00 2001 From: ogabrielluiz Date: Mon, 17 Jun 2024 09:17:58 -0300 Subject: [PATCH] Refactor ChatInput and ChatOutput components to prevent duplicate message storage --- src/backend/base/langflow/components/inputs/ChatInput.py | 6 ++---- .../base/langflow/components/outputs/ChatOutput.py | 8 +++----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/backend/base/langflow/components/inputs/ChatInput.py b/src/backend/base/langflow/components/inputs/ChatInput.py index 9072d6ae8..641562fe3 100644 --- a/src/backend/base/langflow/components/inputs/ChatInput.py +++ b/src/backend/base/langflow/components/inputs/ChatInput.py @@ -44,8 +44,6 @@ 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, @@ -53,9 +51,9 @@ class ChatInput(ChatComponent): sender_name=self.sender_name, session_id=self.session_id, ) - if self.session_id and isinstance(message, Message) and isinstance(message.text, str) and not self._message_stored: + if self.session_id and isinstance(message, Message) and isinstance(message.text, str): self.store_message(message) - self._message_stored = True + self.message.value = message 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 f814a276b..c54251d01 100644 --- a/src/backend/base/langflow/components/outputs/ChatOutput.py +++ b/src/backend/base/langflow/components/outputs/ChatOutput.py @@ -1,8 +1,8 @@ from langflow.base.io.chat import ChatComponent +from langflow.field_typing import Text from langflow.inputs import BoolInput, DropdownInput, StrInput from langflow.schema.message import Message from langflow.template import Output -from langflow.field_typing import Text class ChatOutput(ChatComponent): @@ -39,8 +39,6 @@ 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, @@ -48,9 +46,9 @@ 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) and not self._message_stored: + if self.session_id and isinstance(message, Message) and isinstance(message.text, str): self.store_message(message) - self._message_stored = True + self.message.value = message self.status = message return message