(self, msg_id: int)
| 170 | self.memory_snapshot = [] |
| 171 | |
| 172 | def _delete_single(self, msg_id: int): |
| 173 | messages_to_delete = self.cache_messages.get(msg_id, None) |
| 174 | if messages_to_delete is None: |
| 175 | return |
| 176 | self.cache_messages.pop(msg_id, None) |
| 177 | if msg_id == self.max_msg_id: |
| 178 | self.max_msg_id = max(self.cache_messages.keys()) |
| 179 | |
| 180 | idx = 0 |
| 181 | while idx < len(self.memory_snapshot): |
| 182 | |
| 183 | enable_ids = self.memory_snapshot[idx].enable_idxs |
| 184 | disable_id = self.memory_snapshot[idx].disable_idx |
| 185 | if msg_id == disable_id: |
| 186 | self.memory_snapshot[idx].try_enable(msg_id) |
| 187 | metadata = {'user_id': self.user_id} |
| 188 | if self.agent_id: |
| 189 | metadata['agent_id'] = self.agent_id |
| 190 | if self.run_id: |
| 191 | metadata['run_id'] = self.run_id |
| 192 | try: |
| 193 | self.memory._create_memory( |
| 194 | data=self.memory_snapshot[idx].value, |
| 195 | existing_embeddings={}, |
| 196 | metadata=metadata) |
| 197 | except Exception as e: |
| 198 | logger.warning(f'Failed to recover memory: {e}') |
| 199 | if msg_id in enable_ids: |
| 200 | if len(enable_ids) > 1: |
| 201 | self.memory_snapshot[idx].enable_idxs.remove(msg_id) |
| 202 | else: |
| 203 | self.memory.delete(self.memory_snapshot[idx].memory_id) |
| 204 | self.memory_snapshot.pop(idx) |
| 205 | idx -= 1 # After pop, the next item becomes the current idx |
| 206 | |
| 207 | idx += 1 |
| 208 | |
| 209 | async def add_single(self, |
| 210 | messages: List[Message], |
no test coverage detected