from typing import List, Optional, Type

from langchain.memory import (
    ChatMessageHistory,
    ConversationBufferMemory,
    ConversationSummaryMemory,
    RedisChatMessageHistory,
    RedisEntityStore,
    VectorStoreRetrieverMemory,
)


class Memory:
    @staticmethod
    def messageHistory(path: str):
        history = ChatMessageHistory()
        return history

    @staticmethod
    def bufferMemory(path: str):
        memory = ConversationBufferMemory()
        return memory

    @staticmethod
    def chatSummary(path: str):
        memory = ConversationSummaryMemory()
        return memory

langchain.memory.ConversationSummaryMemory langchain.memory.ConversationBufferMemory langchain.memory.ChatMessageHistory
[((329, 349), 'langchain.memory.ChatMessageHistory', 'ChatMessageHistory', ([], {}), '()\n', (347, 349), False, 'from langchain.memory import ChatMessageHistory, ConversationBufferMemory, ConversationSummaryMemory, RedisChatMessageHistory, RedisEntityStore, VectorStoreRetrieverMemory\n'), ((442, 468), 'langchain.memory.ConversationBufferMemory', 'ConversationBufferMemory', ([], {}), '()\n', (466, 468), False, 'from langchain.memory import ChatMessageHistory, ConversationBufferMemory, ConversationSummaryMemory, RedisChatMessageHistory, RedisEntityStore, VectorStoreRetrieverMemory\n'), ((559, 586), 'langchain.memory.ConversationSummaryMemory', 'ConversationSummaryMemory', ([], {}), '()\n', (584, 586), False, 'from langchain.memory import ChatMessageHistory, ConversationBufferMemory, ConversationSummaryMemory, RedisChatMessageHistory, RedisEntityStore, VectorStoreRetrieverMemory\n')]