@@ -857,4 +857,48 @@ def tbasedoc2Memory(self, r_docs) -> Memory:
857
857
# content = message.customed_kargs.pop(key)
858
858
# if content is not None:
859
859
# 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