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