from fastapi import FastAPI import uvicorn import json from pydantic import BaseModel import joblib import json import imblearn import pandas as pd from xgboost import XGBClassifier from fastapi import FastAPI, Query, Request, HTTPException app = FastAPI() # loading my best model with joblib model = joblib.load("./xgb.joblib") ### @app.get("/") async def read_root(): return {"message": "Welcome to the Sepsis Prediction using FastAPI"} def classify(prediction): if prediction == 0: return "Patient does not have sepsis" else: return "Patient has sepsis" @app.post("/predict/") async def predict_sepsis( request: Request, prg: float = Query(..., description="Plasma_glucose"), pl: float = Query(..., description="Blood_Work_R1"), pr: float = Query(..., description="Blood_Pressure"), sk: float = Query(..., description="Blood_Work_R2"), ts: float = Query(..., description="Blood_Work_R3"), m11: float = Query(..., description="BMI"), bd2: float = Query(..., description="Blood_Work_R4"), age: int = Query(..., description="Age") # ... (other input parameters) ): input_data = [prg, pl, pr, sk, ts, m11, bd2, age] input_df = pd.DataFrame([input_data], columns=[ "Plasma_glucose", "Blood_Work_R1", "Blood_Pressure", "Blood_Work_R2", "Blood_Work_R3", "BMI", "Blood_Work_R4", "Age" ]) pred = model.predict(input_df) output = classify(pred[0]) response = { "prediction": output } return response # Run the app using Uvicorn if __name__ == "__main__": import uvicorn uvicorn.run(app, host="127.0.0.1", port=7860)