rdune71's picture
Fix critical deployment issues: Redis connection, Ollama URL sanitization, Hugging Face provider, config validation, and enhanced error handling
45df059
import json
import time
import logging
from core.redis_client import redis_client
from utils.config import config
# Set up logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
def save_user_state(user_id: str, state: dict):
"""Save user state to Redis with fallback to in-memory storage"""
client = redis_client.get_client()
if not client:
# Fallback: use in-memory storage (will not persist across restarts)
logger.info("Redis not available, using in-memory storage for user state")
return False
try:
client.hset(f"user:{user_id}", mapping=state)
return True
except Exception as e:
logger.error(f"Error saving user state: {e}")
return False
def load_user_state(user_id: str):
"""Load user state from Redis with fallback"""
client = redis_client.get_client()
if not client:
logger.info("Redis not available, returning empty state")
return {}
try:
return client.hgetall(f"user:{user_id}")
except Exception as e:
logger.error(f"Error loading user state: {e}")
return {}
def check_redis_health():
"""Check if Redis is healthy"""
return redis_client.is_healthy()