Spaces:
Runtime error
Runtime error
| import logging | |
| from datetime import datetime, timezone | |
| from app.core.db_setup import conversations_collection, user_memory_collection, feedback_collection, interaction_patterns_collection | |
| from app.core.logging_setup import logger | |
| def reset_memory(): | |
| """Wipe all stored conversations and facts.""" | |
| try: | |
| conversations_collection.delete_many({}) | |
| user_memory_collection.delete_many({}) | |
| feedback_collection.delete_many({}) | |
| interaction_patterns_collection.delete_many({}) | |
| logger.info("Memory reset: All data deleted.") | |
| except Exception as e: | |
| logger.error(f"Unexpected error: {e}") | |
| def update_last_interaction(): | |
| """Update the last interaction timestamp in memory.""" | |
| try: | |
| timestamp = datetime.now(timezone.utc).isoformat() | |
| user_memory_collection.update_one( | |
| {"key": "last_interaction"}, | |
| {"$set": {"value": timestamp}}, | |
| upsert=True | |
| ) | |
| logger.info("Last interaction timestamp updated.") | |
| except Exception as e: | |
| logger.error(f"Unexpected error: {e}") | |
| def get_last_interaction(): | |
| """Retrieve the last interaction timestamp safely.""" | |
| try: | |
| last_interaction = user_memory_collection.find_one({"key": "last_interaction"}) | |
| if last_interaction and "value" in last_interaction: | |
| try: | |
| # Ensure the datetime is timezone-aware | |
| return datetime.fromisoformat(last_interaction["value"]).astimezone(timezone.utc) | |
| except ValueError: | |
| logger.error(f"Invalid timestamp format in DB: {last_interaction['value']}") | |
| return None | |
| except Exception as e: | |
| logger.error(f"Unexpected error: {e}") | |
| return None |