| from fastapi import FastAPI |
| import pickle |
| import uvicorn |
| import pandas as pd |
|
|
| app = FastAPI() |
|
|
| |
| |
| |
|
|
|
|
| |
| def load_pickle(filename): |
| with open(filename, 'rb') as file: |
| data = pickle.load(file) |
| return data |
| |
| |
| ml_components = load_pickle('ml_sepsis.pkl') |
|
|
| |
| ml_model = ml_components['model'] |
| pipeline_processing = ml_components['pipeline'] |
|
|
| @app.get('/Predict_Sepsis') |
| async def predict(Plasma_glucose: int, Blood_Work_Result_1: int, |
| Blood_Pressure: int, Blood_Work_Result_2: int, |
| Blood_Work_Result_3: int, Body_mass_index: float, |
| Blood_Work_Result_4: float,Age: int, Insurance:float): |
| |
| data = pd.DataFrame({'Plasma glucose': [Plasma_glucose], 'Blood Work Result-1': [Blood_Work_Result_1], |
| 'Blood Pressure': [Blood_Pressure], 'Blood Work Result-2': [Blood_Work_Result_2], |
| 'Blood Work Result-3': [Blood_Work_Result_3], 'Body mass index': [Body_mass_index], |
| 'Blood Work Result-4': [Blood_Work_Result_4], 'Age': [Age], 'Insurance':[Insurance]}) |
| |
| data_prepared = pipeline_processing.transform(data) |
|
|
| model_output = ml_model.predict(data_prepared).tolist() |
|
|
| prediction = make_prediction(model_output) |
|
|
| return prediction |
| |
| |
|
|
|
|
| def make_prediction(data_prepared): |
|
|
| output_pred = data_prepared |
|
|
| if output_pred == 0: |
| output_pred = "Sepsis status is Negative" |
| else: |
| output_pred = "Sepsis status is Positive" |
| |
| return output_pred |