|
from fastapi import FastAPI |
|
from api.status import router as status_router |
|
from api.chat import router as chat_router |
|
from core.memory import check_redis_health |
|
import logging |
|
import time |
|
|
|
app = FastAPI() |
|
logger = logging.getLogger(__name__) |
|
|
|
|
|
app.include_router(status_router, prefix="/api") |
|
app.include_router(chat_router, prefix="/api") |
|
|
|
@app.get("/") |
|
async def root(): |
|
logger.info("API root endpoint accessed") |
|
return {"message": "AI Life Coach API is running"} |
|
|
|
@app.get("/health") |
|
async def health_check(): |
|
"""Comprehensive health check endpoint""" |
|
redis_healthy = check_redis_health() |
|
|
|
health_status = { |
|
"status": "healthy" if redis_healthy else "degraded", |
|
"services": { |
|
"redis": "healthy" if redis_healthy else "unhealthy" |
|
}, |
|
"timestamp": time.time() |
|
} |
|
|
|
if redis_healthy: |
|
logger.info("Health check passed") |
|
else: |
|
logger.warning("Health check degraded") |
|
|
|
return health_status |
|
|
|
|
|
@app.on_event("startup") |
|
async def startup_event(): |
|
logger.info("AI Life Coach API starting up...") |
|
redis_healthy = check_redis_health() |
|
logger.info("Redis health: %s", "healthy" if redis_healthy else "unhealthy") |
|
|