churnflow-api / src /api /main.py
aleem1234's picture
Fix requirements.txt dependencies
38c1a14
Raw
History Blame Contribute Delete
1.1 kB
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanager
from src.api.config import logger
from src.api.database import init_db
from src.api.ml_services import load_models_and_data
from src.api.routes import router
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup: Load databases and models
logger.info("Starting up Customer Churn Prediction API...")
init_db()
load_models_and_data()
yield
# Shutdown
logger.info("Shutting down Customer Churn Prediction API...")
app = FastAPI(
title="Customer Churn Prediction API",
description="Production-grade REST API serving real-time customer churn forecasts based on XGBoost & Random Forest features.",
version="2.0.0",
lifespan=lifespan
)
# Enable CORS for frontend dashboard access
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Restrict origins in production environments
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Include routes APIRouter
app.include_router(router)