-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmanager.py
More file actions
21 lines (17 loc) · 701 Bytes
/
Copy pathmanager.py
File metadata and controls
21 lines (17 loc) · 701 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from typing import Dict
from base_memory import BaseMemoryModule
from memory_item import MemoryItem
class UnifiedMemoryManager:
def __init__(self):
self.modules: Dict[str, BaseMemoryModule] = {}
def register_memory_type(self, name: str, module: BaseMemoryModule):
self.modules[name] = module
def add(self, module_name: str, item: MemoryItem):
self.modules[module_name].add_item(item)
def query(self, query: str, module_name: str = None):
if module_name:
return self.modules[module_name].retrieve(query)
results = []
for mod in self.modules.values():
results.extend(mod.retrieve(query))
return results