ragent-chatbot / memory /chat_memory.py
shafiqul1357's picture
upload source code
633bb91 verified
raw
history blame
1.72 kB
from typing import Dict, List
from langchain_core.messages import BaseMessage, HumanMessage, AIMessage
class MemoryManager:
def __init__(self):
self.sessions: Dict[str, List[BaseMessage]] = {}
def get(self, session_id: str = "default") -> List[BaseMessage]:
"""Returns message history for a given session."""
if session_id not in self.sessions:
self.sessions[session_id] = []
return self.sessions[session_id]
def add(self, session_id: str, message: BaseMessage):
"""Appends a message to the session memory."""
if session_id not in self.sessions:
self.sessions[session_id] = []
self.sessions[session_id].append(message)
def clear(self, session_id: str = "default"):
"""Clears memory for a given session."""
if session_id in self.sessions:
self.sessions[session_id] = []
def list_sessions(self) -> List[str]:
"""Lists all active session IDs."""
return list(self.sessions.keys())
if __name__ == "__main__":
memory = MemoryManager()
# Add messages to session "test1"
memory.add("test1", HumanMessage(content="What's the weather today?"))
memory.add("test1", AIMessage(content="It's sunny in Tokyo."))
# Retrieve and print messages
print("\n--- Chat history for 'test1' ---")
for msg in memory.get("test1"):
role = "User" if isinstance(msg, HumanMessage) else "Assistant"
print(f"{role}: {msg.content}")
# List sessions
print("\n--- Active Sessions ---")
print(memory.list_sessions())
# Clear session
memory.clear("test1")
print("\n--- Chat history after clearing ---")
print(memory.get("test1"))