| | |
| | """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() |
| |
|