Leonydis137 commited on
Commit
9957774
·
verified ·
1 Parent(s): c68ab83

Update memory.py

Browse files
Files changed (1) hide show
  1. memory.py +60 -5
memory.py CHANGED
@@ -1,5 +1,60 @@
1
- def init_memory(): return {'texts': []}
2
- def add_to_memory(sid, prompt, response): pass
3
- def get_memory(sid=None): return []
4
- def get_summary(sid): return 'summary'
5
- def search_memory(q, mem): return []
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import os
3
+ from datetime import datetime
4
+
5
+ class MemoryManager:
6
+ def __init__(self):
7
+ self.file_path = "memory.json"
8
+ self.memory = self.load_memory()
9
+
10
+ def load_memory(self):
11
+ if os.path.exists(self.file_path):
12
+ try:
13
+ with open(self.file_path, 'r') as f:
14
+ return json.load(f)
15
+ except json.JSONDecodeError:
16
+ return {}
17
+ return {}
18
+
19
+ def save_memory(self):
20
+ with open(self.file_path, 'w') as f:
21
+ json.dump(self.memory, f, indent=2)
22
+
23
+ def init_session(self, session_id):
24
+ if session_id not in self.memory:
25
+ self.memory[session_id] = {
26
+ "created": datetime.now().isoformat(),
27
+ "entries": []
28
+ }
29
+ self.save_memory()
30
+
31
+ def add(self, session_id, key, value):
32
+ if session_id in self.memory:
33
+ self.memory[session_id]["entries"].append({
34
+ "timestamp": datetime.now().isoformat(),
35
+ "key": key,
36
+ "value": value
37
+ })
38
+ self.save_memory()
39
+
40
+ def get(self, session_id):
41
+ return self.memory.get(session_id, {"entries": []})
42
+
43
+ def search(self, session_id, query):
44
+ results = []
45
+ for entry in self.get(session_id)["entries"]:
46
+ if (query.lower() in entry["key"].lower() or
47
+ (isinstance(entry["value"], str) and query.lower() in entry["value"].lower())):
48
+ results.append(entry)
49
+ return results
50
+
51
+ def get_summary(self, session_id):
52
+ entries = self.get(session_id)["entries"]
53
+ if not entries:
54
+ return "No memories found"
55
+
56
+ # Create a summary of key events
57
+ summary = [f"Session started at {entries[0]['timestamp']}"]
58
+ for entry in entries[-5:]: # Last 5 entries
59
+ summary.append(f"{entry['timestamp']}: {entry['key']}")
60
+ return "\n".join(summary)