File size: 1,950 Bytes
b7b4ea5 f35547a b7b4ea5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# 1. Library imports
import uvicorn
from fastapi import FastAPI
from sepsis import Sepsis
import numpy as np
import pickle
import pandas as pd
# 2. Create the app object
app = FastAPI()
with open('pipeline.pkl', 'rb') as file:
classifier_dict = pickle.load(file)
# Extract the classifier from the dictionary
classifier = classifier_dict['model']
#classifier=pickle.load(pickle_in)
# 3. Index route, opens automatically on http://127.0.0.1:8000
@app.get('/')
def index():
return {'message': 'Sepsis Prediction App'}
# 4. Route with a single parameter, returns the parameter within a message
# Located at: http://127.0.0.1:8000/AnyNameHere
@app.get('/{name}')
def get_name(name: str):
return {'Welcome the Sepssis prediction model': f'{name}'}
# 3. Expose the prediction functionality, make a prediction from the passed
# JSON data and return the predicted Bank Note with the confidence
@app.post('/predict')
def predict_sepssis(data:Sepsis):
data = data.dict()
Plasmaglucose=data['Plasmaglucose']
BloodWorkResult1=data['BloodWorkResult1']
BloodPressure=data['BloodPressure']
BloodWorkResult2=data['BloodWorkResult2']
BloodWorkResult3=data['BloodWorkResult3']
Bodymassindex =data['Bodymassindex']
BloodWorkResult4=data['BloodWorkResult4']
Age=data['Age']
# print(classifier.predict([[variance,skewness,curtosis,entropy]]))
# Extract the classifier from the dictionary
prediction = classifier.predict([[Plasmaglucose,BloodWorkResult1,BloodPressure,BloodWorkResult2,BloodWorkResult3,Bodymassindex,BloodWorkResult4,Age]])
if(prediction[0]>0.5):
prediction="Sepssis present"
else:
prediction="Sepssis Absent"
return {
'prediction': prediction
}
# 5. Run the API with uvicorn
# Will run on http://127.0.0.1:8000
if __name__ == '__main__':
uvicorn.run(app, host='127.0.0.1', port=8000)
#uvicorn app:app --reload |