Skip to content

Commit 21662bf

Browse files
Refine cloud add log handler output
1 parent e6009db commit 21662bf

File tree

1 file changed

+36
-15
lines changed

1 file changed

+36
-15
lines changed

src/memos/mem_scheduler/general_scheduler.py

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -559,28 +559,37 @@ def _add_message_consumer(self, messages: list[ScheduleMessageItem]) -> None:
559559

560560
def _mem_feedback_message_consumer(self, messages: list[ScheduleMessageItem]) -> None:
561561
try:
562+
if not messages:
563+
return
562564
message = messages[0]
563565
mem_cube = self.current_mem_cube
564566

565567
user_id = message.user_id
566568
mem_cube_id = message.mem_cube_id
567569
content = message.content
568570

569-
feedback_data = json.loads(content)
571+
try:
572+
feedback_data = json.loads(content) if isinstance(content, str) else content
573+
if not isinstance(feedback_data, dict):
574+
logger.error(f"Failed to decode feedback_data or it is not a dict: {feedback_data}")
575+
return
576+
except json.JSONDecodeError:
577+
logger.error(f"Invalid JSON content for feedback message: {content}", exc_info=True)
578+
return
570579

571580
feedback_result = self.feedback_server.process_feedback(
572581
user_id=user_id,
573582
user_name=mem_cube_id,
574-
session_id=feedback_data["session_id"],
575-
chat_history=feedback_data["history"],
576-
retrieved_memory_ids=feedback_data["retrieved_memory_ids"],
577-
feedback_content=feedback_data["feedback_content"],
578-
feedback_time=feedback_data["feedback_time"],
579-
task_id=feedback_data["task_id"],
583+
session_id=feedback_data.get("session_id"),
584+
chat_history=feedback_data.get("history", []),
585+
retrieved_memory_ids=feedback_data.get("retrieved_memory_ids", []),
586+
feedback_content=feedback_data.get("feedback_content"),
587+
feedback_time=feedback_data.get("feedback_time"),
588+
task_id=feedback_data.get("task_id"),
580589
)
581590

582591
logger.info(
583-
f"Successfully feedback memories for user_id={user_id}, mem_cube_id={mem_cube_id}"
592+
f"Successfully processed feedback for user_id={user_id}, mem_cube_id={mem_cube_id}"
584593
)
585594

586595
should_send_log = (
@@ -590,13 +599,25 @@ def _mem_feedback_message_consumer(self, messages: list[ScheduleMessageItem]) ->
590599
)
591600
if feedback_result and should_send_log:
592601
feedback_content = []
593-
for _i, mem_item in enumerate(feedback_result):
594-
feedback_content.append(
595-
{
596-
"content": mem_item.memory,
597-
"id": mem_item["id"],
598-
}
599-
)
602+
for mem_item in feedback_result:
603+
# Safely access attributes, assuming mem_item could be dict or object
604+
mem_id = getattr(mem_item, 'id', None) or mem_item.get('id') if isinstance(mem_item, dict) else None
605+
mem_memory = getattr(mem_item, 'memory', None) or mem_item.get('memory') if isinstance(mem_item, dict) else None
606+
607+
if mem_id and mem_memory:
608+
feedback_content.append(
609+
{
610+
"content": mem_memory,
611+
"id": mem_id,
612+
}
613+
)
614+
else:
615+
logger.warning(f"Skipping malformed mem_item in feedback_result: {mem_item}")
616+
617+
if not feedback_content:
618+
logger.warning("No valid feedback content generated from feedback_result.")
619+
return
620+
600621
event = self.create_event_log(
601622
label="feedbackMemory",
602623
from_memory_type=USER_INPUT_TYPE,

0 commit comments

Comments
 (0)