| from langchain_community.chat_message_histories import ChatMessageHistory | |
| from typing import Optional | |
| import logging | |
| logger = logging.getLogger(__name__) | |
| class MemoryStore: | |
| _instance: Optional['MemoryStore'] = None | |
| _memory: Optional[ChatMessageHistory] = None | |
| def __new__(cls): | |
| if cls._instance is None: | |
| cls._instance = super(MemoryStore, cls).__new__(cls) | |
| cls._memory = ChatMessageHistory() | |
| logger.info("New MemoryStore instance created") | |
| return cls._instance | |
| def get_memory(cls) -> ChatMessageHistory: | |
| if cls._instance is None: | |
| cls._instance = cls() | |
| return cls._memory | |
| def clear_memory(cls): | |
| if cls._memory is not None: | |
| cls._memory = ChatMessageHistory() | |
| logger.info("Memory cleared") |