* 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>
44 lines
1.3 KiB
Python
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)
|