@@ -182,13 +182,13 @@ def mem_reorganizer_wait(self) -> bool:
182182 logger .info (f"close reorganizer for { mem_cube .text_mem .config .cube_id } " )
183183 mem_cube .text_mem .memory_manager .wait_reorganizer ()
184184
185- def _register_chat_history (self , user_id : str | None = None ) -> None :
185+ def _register_chat_history (
186+ self , user_id : str | None = None , session_id : str | None = None
187+ ) -> None :
186188 """Initialize chat history with user ID."""
187- if user_id is None :
188- user_id = self .user_id
189189 self .chat_history_manager [user_id ] = ChatHistory (
190- user_id = user_id ,
191- session_id = self .session_id ,
190+ user_id = user_id if user_id is not None else self . user_id ,
191+ session_id = session_id if session_id is not None else self .session_id ,
192192 created_at = datetime .utcnow (),
193193 total_messages = 0 ,
194194 chat_history = [],
@@ -563,6 +563,7 @@ def search(
563563 Returns:
564564 MemoryResult: A dictionary containing the search results.
565565 """
566+ target_session_id = session_id if session_id is not None else self .session_id
566567 target_user_id = user_id if user_id is not None else self .user_id
567568
568569 self ._validate_user_exists (target_user_id )
@@ -609,7 +610,7 @@ def search(
609610 manual_close_internet = not internet_search ,
610611 info = {
611612 "user_id" : target_user_id ,
612- "session_id" : session_id if session_id is not None else self . session_id ,
613+ "session_id" : target_session_id ,
613614 "chat_history" : chat_history .chat_history ,
614615 },
615616 moscube = moscube ,
@@ -652,7 +653,8 @@ def add(
652653 assert (messages is not None ) or (memory_content is not None ) or (doc_path is not None ), (
653654 "messages_or_doc_path or memory_content or doc_path must be provided."
654655 )
655- self .session_id = session_id
656+ # TODO: asure that session_id is a valid string
657+ target_session_id = session_id if session_id else self .session_id
656658 target_user_id = user_id if user_id is not None else self .user_id
657659 if mem_cube_id is None :
658660 # Try to find a default cube for the user
@@ -675,7 +677,7 @@ def add(
675677 if self .mem_cubes [mem_cube_id ].config .text_mem .backend != "tree_text" :
676678 add_memory = []
677679 metadata = TextualMemoryMetadata (
678- user_id = target_user_id , session_id = self . session_id , source = "conversation"
680+ user_id = target_user_id , session_id = target_session_id , source = "conversation"
679681 )
680682 for message in messages :
681683 add_memory .append (
@@ -687,7 +689,7 @@ def add(
687689 memories = self .mem_reader .get_memory (
688690 messages_list ,
689691 type = "chat" ,
690- info = {"user_id" : target_user_id , "session_id" : self . session_id },
692+ info = {"user_id" : target_user_id , "session_id" : target_session_id },
691693 )
692694
693695 mem_ids = []
@@ -719,7 +721,7 @@ def add(
719721 ):
720722 if self .mem_cubes [mem_cube_id ].config .text_mem .backend != "tree_text" :
721723 metadata = TextualMemoryMetadata (
722- user_id = self . user_id , session_id = self . session_id , source = "conversation"
724+ user_id = target_user_id , session_id = target_session_id , source = "conversation"
723725 )
724726 self .mem_cubes [mem_cube_id ].text_mem .add (
725727 [TextualMemoryItem (memory = memory_content , metadata = metadata )]
@@ -731,7 +733,7 @@ def add(
731733 memories = self .mem_reader .get_memory (
732734 messages_list ,
733735 type = "chat" ,
734- info = {"user_id" : target_user_id , "session_id" : self . session_id },
736+ info = {"user_id" : target_user_id , "session_id" : target_session_id },
735737 )
736738
737739 mem_ids = []
@@ -765,7 +767,7 @@ def add(
765767 doc_memories = self .mem_reader .get_memory (
766768 documents ,
767769 type = "doc" ,
768- info = {"user_id" : target_user_id , "session_id" : self . session_id },
770+ info = {"user_id" : target_user_id , "session_id" : target_session_id },
769771 )
770772
771773 mem_ids = []
@@ -998,7 +1000,7 @@ def load(
9981000
9991001 def get_user_info (self ) -> dict [str , Any ]:
10001002 """Get current user information including accessible cubes.
1001-
1003+ TODO: maybe input user_id
10021004 Returns:
10031005 dict: User information and accessible cubes.
10041006 """
0 commit comments