From 978efe5543eb9a59cff50208b39859db65c12671 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 29 Feb 2024 16:36:25 -0300 Subject: [PATCH] Add MessageHistory component and remove StoreMessages component --- .../langflow/components/io/StoreMessages.py | 73 ------------------- .../{io => memories}/MessageHistory.py | 0 .../langflow/components/memories/__init__.py | 0 3 files changed, 73 deletions(-) delete mode 100644 src/backend/langflow/components/io/StoreMessages.py rename src/backend/langflow/components/{io => memories}/MessageHistory.py (100%) create mode 100644 src/backend/langflow/components/memories/__init__.py diff --git a/src/backend/langflow/components/io/StoreMessages.py b/src/backend/langflow/components/io/StoreMessages.py deleted file mode 100644 index 0bd051424..000000000 --- a/src/backend/langflow/components/io/StoreMessages.py +++ /dev/null @@ -1,73 +0,0 @@ -from typing import List, Optional - -from langflow import CustomComponent -from langflow.field_typing import Text -from langflow.memory import add_messages -from langflow.schema import Record - - -class StoreMessages(CustomComponent): - display_name = "Store Messages" - description = "Used to store messages." - - def build_config(self): - return { - "records": { - "display_name": "Records", - "info": "The list of records to store. Each record should contain the keys 'sender', 'sender_name', and 'session_id'.", - }, - "texts": { - "display_name": "Texts", - "info": "The list of texts to store. If records is not provided, texts must be provided.", - }, - "session_id": { - "display_name": "Session ID", - "info": "The session ID to store.", - }, - "sender": { - "display_name": "Sender", - "info": "The sender to store.", - }, - "sender_name": { - "display_name": "Sender Name", - "info": "The sender name to store.", - }, - } - - def build( - self, - records: Optional[List[Record]] = None, - texts: Optional[List[Text]] = None, - session_id: Optional[str] = None, - sender: Optional[str] = None, - sender_name: Optional[str] = None, - ) -> List[Record]: - # Records is the main way to store messages - # If records is not provided, we can use texts - # but we need to create the records from the texts - # and the other parameters - if not texts and not records: - raise ValueError("Either texts or records must be provided.") - if not texts: - texts = [] - - if not records: - records = [] - if not session_id or not sender or not sender_name: - raise ValueError("If passing texts, session_id, sender, and sender_name must be provided.") - for text in texts: - record = Record( - text=text, - data={ - "session_id": session_id, - "sender": sender, - "sender_name": sender_name, - }, - ) - records.append(record) - elif isinstance(records, Record): - records = [records] - - self.status = records - records = add_messages(records) - return records or [] diff --git a/src/backend/langflow/components/io/MessageHistory.py b/src/backend/langflow/components/memories/MessageHistory.py similarity index 100% rename from src/backend/langflow/components/io/MessageHistory.py rename to src/backend/langflow/components/memories/MessageHistory.py diff --git a/src/backend/langflow/components/memories/__init__.py b/src/backend/langflow/components/memories/__init__.py new file mode 100644 index 000000000..e69de29bb