(
self,
messages: List[Message],
user_id: Optional[List[str]] = None,
agent_id: Optional[List[str]] = None,
run_id: Optional[List[str]] = None,
memory_type: Optional[List[str]] = None,
)
| 431 | return None |
| 432 | |
| 433 | async def add( |
| 434 | self, |
| 435 | messages: List[Message], |
| 436 | user_id: Optional[List[str]] = None, |
| 437 | agent_id: Optional[List[str]] = None, |
| 438 | run_id: Optional[List[str]] = None, |
| 439 | memory_type: Optional[List[str]] = None, |
| 440 | ) -> None: |
| 441 | should_add_messages, should_delete = self._analyze_messages(messages) |
| 442 | |
| 443 | if should_delete: |
| 444 | if self.history_mode == 'overwrite': |
| 445 | for msg_id in should_delete: |
| 446 | self._delete_single(msg_id=msg_id) |
| 447 | res = self.memory.get_all( |
| 448 | user_id=user_id or self.user_id, |
| 449 | agent_id=agent_id or self.agent_id, |
| 450 | run_id=run_id or self.run_id) # sorted |
| 451 | res = [(item['id'], item['memory']) for item in res['results']] |
| 452 | logger.info('Roll back success. All memory info:') |
| 453 | for item in res: |
| 454 | logger.info(item[1]) |
| 455 | if should_add_messages: |
| 456 | for messages in should_add_messages: |
| 457 | messages = self.parse_messages(messages) |
| 458 | await self.add_single( |
| 459 | messages, |
| 460 | user_id=user_id, |
| 461 | agent_id=agent_id, |
| 462 | run_id=run_id, |
| 463 | memory_type=memory_type) |
| 464 | self.save_cache() |
| 465 | |
| 466 | def parse_messages(self, messages: List[Message]) -> List[Message]: |
| 467 | new_messages = [] |
no test coverage detected