()
| 794 | self.mem_scheduler.submit_messages(messages=[message_item]) |
| 795 | |
| 796 | def process_preference_memory(): |
| 797 | if ( |
| 798 | (messages is not None) |
| 799 | and self.config.enable_preference_memory |
| 800 | and self.mem_cubes[mem_cube_id].pref_mem |
| 801 | ): |
| 802 | messages_list = [messages] |
| 803 | if sync_mode == "sync": |
| 804 | pref_memories = self.mem_cubes[mem_cube_id].pref_mem.get_memory( |
| 805 | messages_list, |
| 806 | type="chat", |
| 807 | info={ |
| 808 | "user_id": target_user_id, |
| 809 | "session_id": self.session_id, |
| 810 | "mem_cube_id": mem_cube_id, |
| 811 | }, |
| 812 | ) |
| 813 | pref_ids = self.mem_cubes[mem_cube_id].pref_mem.add(pref_memories) |
| 814 | logger.info( |
| 815 | f"Added preferences user {target_user_id} to memcube {mem_cube_id}: {pref_ids}" |
| 816 | ) |
| 817 | elif sync_mode == "async": |
| 818 | assert self.mem_scheduler is not None, ( |
| 819 | "Mem-Scheduler must be working when use asynchronous memory adding." |
| 820 | ) |
| 821 | message_item = ScheduleMessageItem( |
| 822 | user_id=target_user_id, |
| 823 | session_id=target_session_id, |
| 824 | mem_cube_id=mem_cube_id, |
| 825 | label=PREF_ADD_TASK_LABEL, |
| 826 | content=json.dumps(messages_list), |
| 827 | timestamp=datetime.utcnow(), |
| 828 | ) |
| 829 | self.mem_scheduler.submit_messages(messages=[message_item]) |
| 830 | |
| 831 | # Execute both memory processing functions in parallel |
| 832 | with ContextThreadPoolExecutor(max_workers=2) as executor: |
nothing calls this directly
no test coverage detected