langflow/src/backend/base/langflow/components/experimental/StoreMessage.py
Rodrigo Nader 2785a8bc3a
Refactor store_message function and add StoreMessageComponent (#1817)
* Refactor store_message function in chat.py and memory.py

* Refactor store_message function in chat.py and memory.py

* Add StoreMessageComponent to langflow components

* Refactor store_message function in chat.py and memory.py to require session_id, sender, and sender_name

* Refactor StoreMessageComponent to use Optional[str] for sender_name and session_id parameters

---------

Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
2024-05-02 14:29:54 -03:00

44 lines
1.3 KiB
Python

from typing import List, Optional
from langflow.interface.custom.custom_component import CustomComponent
from langflow.memory import get_messages, store_message
from langflow.schema import Record
class StoreMessageComponent(CustomComponent):
display_name = "Store Message"
description = "Stores a chat message given a Session ID."
beta: bool = True
def build_config(self):
return {
"sender": {
"options": ["Machine", "User"],
"display_name": "Sender Type",
},
"sender_name": {"display_name": "Sender Name"},
"message": {"display_name": "Message"},
"session_id": {
"display_name": "Session ID",
"info": "Session ID of the chat history.",
"input_types": ["Text"],
},
}
def build(
self,
sender: str = "User",
sender_name: Optional[str] = None,
session_id: Optional[str] = None,
message: str = "",
) -> List[Record]:
store_message(
sender=sender,
sender_name=sender_name,
session_id=session_id,
message=message,
)
self.status = get_messages(session_id=session_id)
return get_messages(session_id=session_id)