From 93a94dea4502e3748fae55c71d4b2331d143d433 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=84=E5=87=A4=E7=A7=91=E6=8A=80?= Date: Tue, 4 Mar 2025 13:58:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BF=86=E5=AF=B9=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=88=B3=E6=8E=92=E5=BA=8F=EF=BC=8C=E4=BE=BF=E4=BA=8E=E6=A2=B3?= =?UTF-8?q?=E7=90=86=E5=89=8D=E5=90=8E=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/providers/memory/mem0ai/mem0ai.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/core/providers/memory/mem0ai/mem0ai.py b/core/providers/memory/mem0ai/mem0ai.py index e319b542..482c0bc2 100644 --- a/core/providers/memory/mem0ai/mem0ai.py +++ b/core/providers/memory/mem0ai/mem0ai.py @@ -49,20 +49,24 @@ class MemoryProvider(MemoryProviderBase): # Format each memory entry with its update time up to minutes memories = [] for entry in results['results']: - # Split timestamp and get date + time up to minutes - timestamp = entry.get('updated_at', '').split('.')[0] # Remove milliseconds + timestamp = entry.get('updated_at', '') if timestamp: try: # Parse and reformat the timestamp - dt = timestamp.replace('T', ' ').split(':') # Split time components - formatted_time = f"{dt[0]}:{dt[1]}:{dt[2]}" # Keep only HH:MM:SS + dt = timestamp.split('.')[0] # Remove milliseconds + formatted_time = dt.replace('T', ' ') except: formatted_time = timestamp memory = entry.get('memory', '') if timestamp and memory: - memories.append(f"[{formatted_time}] {memory}") - - memories_str = "\n".join(f"- {memory}" for memory in memories) + # Store tuple of (timestamp, formatted_string) for sorting + memories.append((timestamp, f"[{formatted_time}] {memory}")) + + # Sort by timestamp in descending order (newest first) + memories.sort(key=lambda x: x[0], reverse=True) + + # Extract only the formatted strings + memories_str = "\n".join(f"- {memory[1]}" for memory in memories) logger.bind(tag=TAG).debug(f"Query results: {memories_str}") return memories_str except Exception as e: