diff --git a/memory_module/memory_integration.py b/memory_module/memory_integration.py index 120a517..7ed660b 100644 --- a/memory_module/memory_integration.py +++ b/memory_module/memory_integration.py @@ -28,7 +28,7 @@ Please respond to the user's query: {query} In your response, consider the memories above to provide a personalized answer.""" - def search_memories(self, query: str, user_id: str, limit: int = 5) -> List[Dict[str, Any]]: + def search_memories(self, query: str, user_id: str, limit: int = 5) -> List[Any]: """Search for relevant memories about the user.""" try: results = self.memory.search( @@ -36,6 +36,11 @@ In your response, consider the memories above to provide a personalized answer." user_id=user_id, limit=limit ) + # Debug: Print the actual format of results + print(f"[DEBUG] Search results type: {type(results)}") + if results: + print(f"[DEBUG] First result type: {type(results[0])}") + print(f"[DEBUG] First result: {results[0]}") return results except Exception as e: print(f"[ERROR] Failed to search memories: {e}") @@ -54,25 +59,29 @@ In your response, consider the memories above to provide a personalized answer." print(f"[ERROR] Failed to add memory: {e}") return {} - def format_memories_for_prompt(self, memories: List[Dict[str, Any]]) -> str: + def format_memories_for_prompt(self, memories: List[Any]) -> str: """Format memories into a string for the prompt.""" if not memories: return "No previous memories about this user." formatted = [] for i, memory in enumerate(memories, 1): - memory_text = memory.get("memory", "") - created_at = memory.get("created_at", "") - if created_at: - try: - # Format the date if it's available - created_date = datetime.fromisoformat(created_at.replace('Z', '+00:00')) - created_str = created_date.strftime("%Y-%m-%d %H:%M") - except: - created_str = created_at - formatted.append(f"{i}. {memory_text} (remembered on: {created_str})") - else: - formatted.append(f"{i}. {memory_text}") + # Handle both string and dict formats + if isinstance(memory, dict): + memory_text = memory.get("memory", "") + created_at = memory.get("created_at", "") + if created_at: + try: + # Format the date if it's available + created_date = datetime.fromisoformat(created_at.replace('Z', '+00:00')) + created_str = created_date.strftime("%Y-%m-%d %H:%M") + except: + created_str = created_at + formatted.append(f"{i}. {memory_text} (remembered on: {created_str})") + else: + formatted.append(f"{i}. {memory_text}") + elif isinstance(memory, str): + formatted.append(f"{i}. {memory}") return "\n".join(formatted) @@ -134,6 +143,11 @@ In your response, consider the memories above to provide a personalized answer." """Get all memories for a user.""" try: memories = self.memory.get_all(user_id=user_id) + # Debug: Print the actual format of memories + print(f"[DEBUG] All memories type: {type(memories)}") + if memories: + print(f"[DEBUG] First memory type: {type(memories[0])}") + print(f"[DEBUG] First memory: {memories[0]}") return memories except Exception as e: print(f"[ERROR] Failed to get all memories: {e}")