CoolFace
Apppublic

Queensly/FastAPI_in_Docker

sourceHugging Faceupdated 2y agoView on Hugging Face
1likes
main.py64 linesDownload Raw Back to root
1from fastapi import FastAPI2import pickle3import uvicorn4import pandas as pd5 6app = FastAPI()7 8# @app.get("/")9# def read_root():10#     return {"Hello": "World!"}11 12 13# Function to load pickle file14def load_pickle(filename):15    with open(filename, 'rb') as file:16        data = pickle.load(file)17        return data18    19# Load pickle file20ml_components = load_pickle('ml_sepsis.pkl') 21 22# Components in the pickle file23ml_model = ml_components['model']24pipeline_processing = ml_components['pipeline']    25 26#Endpoints 27#Root endpoints28@app.get("/")29def root():30    return {"API": "An API for Sepsis Prediction."}31    32@app.get('/Predict_Sepsis')33async def predict(Plasma_glucose: int, Blood_Work_Result_1: int,34                  Blood_Pressure: int, Blood_Work_Result_2: int,35                    Blood_Work_Result_3: int, Body_mass_index: float, 36                    Blood_Work_Result_4: float, Age: int, Insurance: float):37    38    data = pd.DataFrame({'Plasma glucose': [Plasma_glucose], 'Blood Work Result-1':	[Blood_Work_Result_1],39                         'Blood Pressure': [Blood_Pressure], 'Blood Work Result-2': [Blood_Work_Result_2],40                        'Blood Work Result-3': [Blood_Work_Result_3], 'Body mass index': [Body_mass_index],41                        'Blood Work Result-4':	[Blood_Work_Result_4], 'Age': [Age], 'Insurance':[Insurance]})42    43    data_prepared = pipeline_processing.transform(data)44 45    model_output = ml_model.predict(data_prepared).tolist()46 47    prediction = make_prediction(model_output)48 49    return prediction50 51 52 53 54def make_prediction(data_prepared):55 56    output_pred = data_prepared57 58    if output_pred == 0:59        output_pred = "Sepsis status is Negative"60    else:61        output_pred = "Sepsis status is Positive"62        63    64    return output_pred