```plaintext
Prevent duplicate message storage in Chat components Introduce `_message_stored` flag to `ChatInput` and `ChatOutput` components to prevent storing the same message multiple times during a single session. This change ensures that each message is stored only once, enhancing data integrity and reducing redundant operations. ```
This commit is contained in:
parent
06df9381ef
commit
cb1cc99c91
2 changed files with 10 additions and 2 deletions
|
|
@ -44,6 +44,8 @@ class ChatInput(ChatComponent):
|
||||||
Output(display_name="Text", name="text", method="text_response"),
|
Output(display_name="Text", name="text", method="text_response"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
_message_stored = False
|
||||||
|
|
||||||
def message_response(self) -> Message:
|
def message_response(self) -> Message:
|
||||||
message = Message(
|
message = Message(
|
||||||
text=self.input_value,
|
text=self.input_value,
|
||||||
|
|
@ -51,8 +53,10 @@ class ChatInput(ChatComponent):
|
||||||
sender_name=self.sender_name,
|
sender_name=self.sender_name,
|
||||||
session_id=self.session_id,
|
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.store_message(message)
|
||||||
|
self._message_stored = True
|
||||||
|
|
||||||
self.status = message
|
self.status = message
|
||||||
return message
|
return message
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,8 @@ class ChatOutput(ChatComponent):
|
||||||
Output(display_name="Text", name="text", method="text_response"),
|
Output(display_name="Text", name="text", method="text_response"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
_message_stored = False
|
||||||
|
|
||||||
def message_response(self) -> Message:
|
def message_response(self) -> Message:
|
||||||
message = Message(
|
message = Message(
|
||||||
text=self.input_value,
|
text=self.input_value,
|
||||||
|
|
@ -46,8 +48,10 @@ class ChatOutput(ChatComponent):
|
||||||
sender_name=self.sender_name,
|
sender_name=self.sender_name,
|
||||||
session_id=self.session_id,
|
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.store_message(message)
|
||||||
|
self._message_stored = True
|
||||||
|
|
||||||
self.status = message
|
self.status = message
|
||||||
return message
|
return message
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue