arina-hf-spaces-api / app /core /memory_management.py
adsurkasur's picture
clone from arina-hf-spaces
68964c2
raw
history blame
1.75 kB
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