@@ -857,4 +857,46 @@ 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 , 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 (chat_index )
874
+ for msg in memory .messages :
875
+ if msg .role_name == role_name :
876
+ return msg
877
+ return None
878
+
879
+ def get_msg_content_by_role_name (self , chat_index : str , role_name : str ) -> Optional [str ]:
880
+ message = self .get_msg_by_role_name (chat_index , role_name )
881
+ if message == None :
882
+ return None
883
+ else :
884
+ return message .role_content
885
+
886
+ def update_msg_content_by_rule (self , chat_index : str , role_name : str , new_content : str ,update_rule : str ) -> bool :
887
+ message = self .get_msg_by_role_name (chat_index , role_name )
888
+
889
+ if message == None :
890
+ return False
891
+
892
+ prompt = f"{ new_content } { message .role_content } { update_rule } "
893
+
894
+ model = getChatModelFromConfig (self .llm_config )
895
+
896
+ new_role_content = model .predict (prompt )
897
+
898
+ if new_role_content is not None :
899
+ message .role_content = new_role_content
900
+ return True
901
+ else :
902
+ return False
0 commit comments