@@ -857,4 +857,48 @@ def tbasedoc2Memory(self, r_docs) -> Memory:
857857 # content = message.customed_kargs.pop(key)
858858 # if content is not None:
859859 # message.setattr(key, content)
860- return memory
860+ return memory
861+
862+
863+ def init_global_msg (self , chat_index : str , role_name : str , role_content : str , role_type : str = "global_value" ) -> bool :
864+ msg = Message (chat_index = chat_index , message_index = role_name ,role_name = role_name , role_type = role_type , role_content = role_content )
865+ try :
866+ self .append (msg )
867+ return True
868+ except Exception as e :
869+ logger .error (f"Failed to initialize global message: { e } " )
870+ return False
871+
872+ def get_msg_by_role_name (self , chat_index : str , role_name : str ) -> Optional [Message ]:
873+ memory = self .get_memory_pool_by_all ({"chat_index" : chat_index , "role_name" : role_name })
874+ # memory = self.get_memory_pool(chat_index)
875+ for msg in memory .messages :
876+ if msg .role_name == role_name :
877+ return msg
878+ return None
879+
880+ def get_msg_content_by_role_name (self , chat_index : str , role_name : str ) -> Optional [str ]:
881+ message = self .get_msg_by_role_name (chat_index , role_name )
882+ if message == None :
883+ return None
884+ else :
885+ return message .role_content
886+
887+ def update_msg_content_by_rule (self , chat_index : str , role_name : str , new_content : str ,update_rule : str ) -> bool :
888+ message = self .get_msg_by_role_name (chat_index , role_name )
889+
890+ if message == None :
891+ return False
892+
893+ prompt = f"{ new_content } \n { role_name } :{ message .role_content } \n { update_rule } "
894+
895+ model = getChatModelFromConfig (self .llm_config )
896+
897+ new_role_content = model .predict (prompt )
898+
899+ if new_role_content is not None :
900+ message .role_content = new_role_content
901+ self .append (message )
902+ return True
903+ else :
904+ return False
0 commit comments