[dev] format print style

This commit is contained in:
jinli.yl 2024-07-14 16:47:56 +08:00
parent 0edaaa4256
commit 298ded324d
9 changed files with 49 additions and 34 deletions

View file

@ -30,7 +30,12 @@ memory_service:
delete_memory:
class: memory.operation.frontend_operation
workflow: set_query,retrieve_all_memory,delete_memory
workflow: set_query,retrieve_all_memory,delete_query
description: "delete a single long-term memory"
delete_all:
class: memory.operation.frontend_operation
workflow: set_query,retrieve_all_memory,delete_all
description: "delete all long-term memory"
add_memory:
@ -92,16 +97,14 @@ worker:
retrieve_obs_top_k: 10000
retrieve_ins_top_k: 10000
retrieve_expired_top_k: 10000
delete_memory:
class: memory.worker.frontend.update_memory_worker
method: modify_action_status
expired_action: delete
valid_action_dict:
obs_customized: delete
insight: delete
observation: delete
delete_query:
class: memory.worker.write.update_memory_worker
method: delete_query
delete_all:
class: memory.worker.write.update_memory_worker
method: delete_all
add_memory:
class: memory.worker.frontend.update_memory_worker
class: memory.worker.write.update_memory_worker
method: from_query
info_filter:
class: memory.worker.write.info_filter_worker

View file

@ -35,7 +35,7 @@ class PrintMemoryWorker(MemoryBaseWorker):
elif MemoryTypeEnum(node.memory_type) in [MemoryTypeEnum.OBSERVATION, MemoryTypeEnum.OBS_CUSTOMIZED]:
j += 1
obs_content_list.append(f" {j} {line}")
obs_content_list.append(f" {j} {line} status={node.obs_reflected},{node.obs_updated}")
elif MemoryTypeEnum(node.memory_type) is MemoryTypeEnum.INSIGHT:
k += 1

View file

@ -123,7 +123,7 @@ class RetrieveMemoryWorker(MemoryBaseWorker):
memory_node_list = sorted(memory_node_list, key=lambda x: x.score_similar, reverse=True)
for node in memory_node_list:
node.action_status = ActionStatusEnum.NONE
node.action_status = ActionStatusEnum.NONE.value
self.logger.info(f"recall_stage: content={node.content} score={node.score_similar} type={node.memory_type} "
f"store_status={node.store_status} action_status={node.action_status}")

View file

@ -63,8 +63,8 @@ class GetReflectionSubjectWorker(MemoryBaseWorker):
# Count unaudited nodes
not_reflected_count = len(not_reflected_nodes)
if not_reflected_count <= self.reflect_obs_cnt_threshold:
self.logger.info(f"not_reflected_count={not_reflected_count} is not enough, skip.")
if not_reflected_count < self.reflect_obs_cnt_threshold:
self.logger.info(f"not_reflected_count({not_reflected_count}) < is not enough, skip.")
self.continue_run = False
return
@ -102,4 +102,5 @@ class GetReflectionSubjectWorker(MemoryBaseWorker):
# Mark unaudited nodes as reflected
for node in not_reflected_nodes:
node.obs_reflected = True
node.obs_reflected = 1
node.action_status = ActionStatusEnum.MODIFIED

View file

@ -193,7 +193,10 @@ class UpdateInsightWorker(MemoryBaseWorker):
self.gather_thread_result()
for node in not_updated_nodes:
node.obs_updated = True
node.obs_updated = 1
node.action_status = ActionStatusEnum.MODIFIED
for node in not_reflected_nodes:
node.obs_updated = True
node.obs_updated = 1
node.action_status = ActionStatusEnum.MODIFIED

View file

@ -26,7 +26,7 @@ class LoadMemoryWorker(MemoryBaseWorker):
"target_name": self.target_name,
"store_status": StoreStatusEnum.VALID.value,
"memory_type": [MemoryTypeEnum.OBSERVATION.value, MemoryTypeEnum.OBS_CUSTOMIZED.value],
"obs_reflected": False,
"obs_reflected": 0,
}
nodes: List[MemoryNode] = self.memory_store.retrieve_memories(query=query,
top_k=self.retrieve_not_reflected_top_k,
@ -43,7 +43,7 @@ class LoadMemoryWorker(MemoryBaseWorker):
"target_name": self.target_name,
"store_status": StoreStatusEnum.VALID.value,
"memory_type": [MemoryTypeEnum.OBSERVATION.value, MemoryTypeEnum.OBS_CUSTOMIZED.value],
"obs_updated": False,
"obs_updated": 0,
}
nodes: List[MemoryNode] = self.memory_store.retrieve_memories(query=query,
top_k=self.retrieve_not_updated_top_k,

View file

@ -1,8 +1,7 @@
from typing import Dict, List
from typing import List
from memory_scope.enumeration.action_status_enum import ActionStatusEnum
from memory_scope.enumeration.memory_type_enum import MemoryTypeEnum
from memory_scope.enumeration.store_status_enum import StoreStatusEnum
from memory_scope.memory.worker.memory_base_worker import MemoryBaseWorker
from memory_scope.scheme.memory_node import MemoryNode
from memory_scope.utils.datetime_handler import DatetimeHandler
@ -13,8 +12,6 @@ class UpdateMemoryWorker(MemoryBaseWorker):
def _parse_params(self, **kwargs):
self.method: str = kwargs.get("method", "")
self.memory_key: str = kwargs.get("memory_key", "")
self.expired_action: str = kwargs.get("expired_action", "")
self.valid_action_dict: Dict[str, str] = kwargs.get("expired_action", {})
def from_query(self):
if "query" not in self.chat_kwargs:
@ -39,17 +36,28 @@ class UpdateMemoryWorker(MemoryBaseWorker):
return self.memory_handler.get_memories(keys=self.memory_key)
def modify_action_status(self):
def delete_all(self):
nodes: List[MemoryNode] = self.memory_handler.get_memories(keys="all")
for node in nodes:
if self.expired_action and node.store_status == StoreStatusEnum.EXPIRED.value:
node.action_status = self.expired_action
node.action_status = ActionStatusEnum.DELETE.value
self.logger.info(f"delete_all.size={len(nodes)}")
return nodes
elif node.memory_type in self.valid_action_dict:
action_status = self.valid_action_dict[node.memory_type]
if action_status:
node.action_status = action_status
def delete_query(self):
if "query" not in self.chat_kwargs:
return
query = self.chat_kwargs["query"].strip()
if not query:
return
i = 0
nodes: List[MemoryNode] = self.memory_handler.get_memories(keys="all")
for node in nodes:
if node.content == query:
i += 1
node.action_status = ActionStatusEnum.DELETE.value
self.logger.info(f"delete_query.size={len(nodes)}")
return nodes
def _run(self):

View file

@ -44,9 +44,9 @@ class MemoryNode(BaseModel):
dt: str = Field("", description="dt of the memory node")
obs_reflected: bool = Field(False, description="if the observation is reflected")
obs_reflected: int = Field(0, description="if the observation is reflected: 0/1")
obs_updated: bool = Field(False, description="if the observation has updated user profile or insight")
obs_updated: int = Field(0, description="if the observation has updated user profile or insight: 0/1")
def __init__(self, **kwargs):
super().__init__(**kwargs)

View file

@ -46,8 +46,8 @@ class MemoryHandler(object):
for node in nodes:
if node.memory_id in self._id_memory_dict:
if log_repeat:
self.logger.warning(f"repeated_id memory id={node.memory_id} content={node.content} "
f"store_status={node.store_status} action_status={node.action_status}")
self.logger.debug(f"repeated_id memory id={node.memory_id} content={node.content} "
f"store_status={node.store_status} action_status={node.action_status}")
continue
self._id_memory_dict[node.memory_id] = node