Skip to content

Commit 80a5277

Browse files
Merge pull request #80 from codefuse-ai/memory_dev2
new memory func
2 parents 85221a3 + 6bd140d commit 80a5277

File tree

2 files changed

+49
-3
lines changed

2 files changed

+49
-3
lines changed

muagent/connector/memory_manager.py

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

muagent/db_handler/graph_db_handler/nebula_handler.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ def execute_cypher(self, cypher: str, space_name: str = '',ignore_log: bool = Fa
9292
if ignore_log == False:
9393
if resp.is_succeeded():
9494
#logger.info(f"Successfully executed Cypher query: {cypher}")
95+
9596
pass
9697

9798
else:
@@ -291,9 +292,10 @@ def add_node(self, node: GNode) -> GbaseExecStatus:
291292
value = value.replace("\n", "\\n").replace("\"", "\\\"")
292293
cypher += f'"{value}",'
293294
elif prop_name == 'description':
294-
# 特殊符号需要手动加\转义符
295295
value = value.replace("\n", "\\n").replace("\"", "\\\"")
296-
# logger.info(value)
296+
cypher += f'"{value}",'
297+
elif prop_name == 'envdescription':
298+
value = value.replace("\n", "\\n").replace("\"", "\\\"")
297299
cypher += f'"{value}",'
298300
else:
299301
cypher += f'"{value}",'

0 commit comments

Comments
 (0)