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)