File size: 867 Bytes
ca133ee |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#!/usr/bin/env python3
"""Conversation Memory Plugin"""
from typing import List, Dict, Any
from collections import deque
import pandas as pd
class ConversationMemory:
"""Track conversation history and context."""
def __init__(self, max_history: int = 50):
self.history = deque(maxlen=max_history)
self.context = {}
def add_message(self, role: str, content: str, metadata: Dict[str, Any] = None):
message = {"role": role, "content": content, "timestamp": pd.Timestamp.now().isoformat()}
if metadata:
message["metadata"] = metadata
self.history.append(message)
def get_history(self, last_n: int = None) -> List[Dict[str, Any]]:
return list(self.history)[-last_n:] if last_n else list(self.history)
def clear(self):
self.history.clear()
self.context.clear()
|