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