import logging from contextlib import asynccontextmanager from fastapi import FastAPI from .schema import PredictRequest, PredictResponse from .service import service logging.basicConfig(level=logging.INFO) @asynccontextmanager async def lifespan(app: FastAPI): logging.info("Iniciando la aplicación") service.load() yield logging.info("Finalizando la aplicación") app = FastAPI(title="MLOps Demo API", lifespan=lifespan) @app.get("/") def read_root(): return {"message": "Bienvenido a la API de MLOps Demo"} @app.post("/predict", response_model=PredictResponse) def predict(req: PredictRequest): cost = service.predict(req.distance_km) return PredictResponse(cost_soles=cost)