MCPcopy Create free account
hub / github.com/modelscope/ms-agent / MemoryMapping

Class MemoryMapping

ms_agent/memory/default_memory.py:24–76  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22
23
24class MemoryMapping:
25 memory_id: str = None
26 memory: str = None
27 valid: bool = None
28 enable_idxs: List[int] = []
29 disable_idx: int = -1
30
31 def __init__(self, memory_id: str, value: str, enable_idxs: int
32 or List[int]):
33 self.memory_id = memory_id
34 self.value = value
35 self.valid = True
36 if isinstance(enable_idxs, int):
37 enable_idxs = [enable_idxs]
38 self.enable_idxs = enable_idxs
39
40 def udpate_idxs(self, enable_idxs: int or List[int]):
41 if isinstance(enable_idxs, int):
42 enable_idxs = [enable_idxs]
43 self.enable_idxs.extend(enable_idxs)
44
45 def disable(self, disable_idx: int):
46 self.valid = False
47 self.disable_idx = disable_idx
48
49 def try_enable(self, expired_disable_idx: int):
50 if expired_disable_idx == self.disable_idx:
51 self.valid = True
52 self.disable_idx = -1
53
54 def get(self):
55 return self.value
56
57 def to_dict(self) -> Dict:
58 return {
59 'memory_id': self.memory_id,
60 'value': self.value,
61 'valid': self.valid,
62 'enable_idxs': self.enable_idxs.copy(
63 ), # Return a copy to prevent external modification
64 'disable_idx': self.disable_idx
65 }
66
67 @classmethod
68 def from_dict(cls, data: Dict) -> 'MemoryMapping':
69 instance = cls(
70 memory_id=data['memory_id'],
71 value=data['value'],
72 enable_idxs=data['enable_idxs'])
73 instance.valid = data['valid']
74 instance.disable_idx = data.get('disable_idx',
75 -1) # Compatible with old data
76 return instance
77
78
79class DefaultMemory(Memory):

Callers 1

add_singleMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected