Spaces:
Sleeping
Sleeping
File size: 2,098 Bytes
3370f37 1ce8863 5e6055c 3370f37 d2f867a 3370f37 5e6055c 3370f37 d2f867a 3370f37 5e6055c 3370f37 d2f867a 3370f37 | 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import os
import json
from datetime import datetime
import time
class MemoryManager:
def __init__(self, persistence_file="memory.json"):
self.persistence_file = persistence_file
self._load_memory()
print("MemoryManager initialized.")
def initialize_user_profile(self, user_id: str):
if user_id not in self.memory:
self.memory[user_id] = {
"created_at": datetime.now().isoformat(),
"conversations": []
}
self._save_memory()
return self.memory[user_id]
def store_conversation(self, user_id: str, message: str, role: str):
if user_id in self.memory:
self.memory[user_id]["conversations"].append({
"timestamp": datetime.now().isoformat(),
"role": role,
"message": message
})
self._save_memory()
def get_relevant_memories(self, user_id: str, query: str, limit: int = 5) -> list:
print(f"Placeholder: Searching for relevant memories for user '{user_id}' with query '{query}'")
return []
def get_user_profile(self, user_id: str) -> dict:
print(f"Placeholder: Retrieving user profile for '{user_id}'")
return self.memory.get(user_id, {}).get("profile", {})
def store_learned_traits(self, user_id: str, traits: dict):
if user_id in self.memory:
self.memory[user_id]["profile"] = self.memory.get(user_id, {}).get("profile", {})
self.memory[user_id]["profile"]["learned_traits"] = json.dumps(traits)
self._save_memory()
def get_conversation_count(self, user_id: str) -> int:
return len(self.memory.get(user_id, {}).get("conversations", []))
def _load_memory(self):
if os.path.exists(self.persistence_file):
with open(self.persistence_file, 'r') as f:
self.memory = json.load(f)
else:
self.memory = {}
def _save_memory(self):
with open(self.persistence_file, 'w') as f:
json.dump(self.memory, f, indent=2) |