Commit
·
78e9078
1
Parent(s):
008fca6
return
Browse files- app/main.py +8 -27
app/main.py
CHANGED
@@ -1,10 +1,9 @@
|
|
1 |
-
from fastapi import FastAPI
|
2 |
from pydantic import BaseModel
|
3 |
import pickle
|
4 |
import pandas as pd
|
5 |
import numpy as np
|
6 |
import uvicorn
|
7 |
-
import json
|
8 |
|
9 |
# call the app
|
10 |
app = FastAPI(title="API")
|
@@ -64,42 +63,24 @@ class Patients(BaseModel):
|
|
64 |
# Endpoints
|
65 |
# Root Endpoint
|
66 |
@app.get("/")
|
67 |
-
def root(
|
68 |
-
|
69 |
-
response = {}
|
70 |
-
|
71 |
-
if "endpoint" in content:
|
72 |
-
endpoint = content["endpoint"]
|
73 |
-
|
74 |
-
if endpoint == "predict":
|
75 |
-
if "patient" in content:
|
76 |
-
patient_data = content["patient"]
|
77 |
-
patient = Patient(**patient_data)
|
78 |
-
prediction = predict_sepsis(patient)
|
79 |
-
response["prediction"] = prediction
|
80 |
-
|
81 |
-
elif endpoint == "predict_multiple":
|
82 |
-
if "patients" in content:
|
83 |
-
patients_data = content["patients"]
|
84 |
-
patients = Patients(**patients_data)
|
85 |
-
prediction = predict_sepsis_for_multiple_patients(patients)
|
86 |
-
response["prediction"] = prediction
|
87 |
-
|
88 |
-
return response
|
89 |
|
90 |
# Prediction endpoint
|
|
|
91 |
def predict_sepsis(patient: Patient):
|
92 |
# Make prediction
|
93 |
data = pd.DataFrame(patient.dict(), index=[0])
|
94 |
parsed = predict(df=data)
|
95 |
-
return parsed
|
96 |
|
97 |
# Multiple Prediction Endpoint
|
|
|
98 |
def predict_sepsis_for_multiple_patients(patients: Patients):
|
99 |
"""Make prediction with the passed data"""
|
100 |
data = pd.DataFrame(Patients.return_list_of_dict(patients))
|
101 |
parsed = predict(df=data, endpoint="multi")
|
102 |
-
return parsed
|
103 |
|
104 |
if __name__ == "__main__":
|
105 |
-
uvicorn.run("main:app", reload=True)
|
|
|
1 |
+
from fastapi import FastAPI
|
2 |
from pydantic import BaseModel
|
3 |
import pickle
|
4 |
import pandas as pd
|
5 |
import numpy as np
|
6 |
import uvicorn
|
|
|
7 |
|
8 |
# call the app
|
9 |
app = FastAPI(title="API")
|
|
|
63 |
# Endpoints
|
64 |
# Root Endpoint
|
65 |
@app.get("/")
|
66 |
+
def root():
|
67 |
+
return {"Welcome to the Sepsis Prediction API! This API provides endpoints for predicting sepsis based on patient data."}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
# Prediction endpoint
|
70 |
+
@app.post("/predict")
|
71 |
def predict_sepsis(patient: Patient):
|
72 |
# Make prediction
|
73 |
data = pd.DataFrame(patient.dict(), index=[0])
|
74 |
parsed = predict(df=data)
|
75 |
+
return {"output": parsed}
|
76 |
|
77 |
# Multiple Prediction Endpoint
|
78 |
+
@app.post("/predict_multiple")
|
79 |
def predict_sepsis_for_multiple_patients(patients: Patients):
|
80 |
"""Make prediction with the passed data"""
|
81 |
data = pd.DataFrame(Patients.return_list_of_dict(patients))
|
82 |
parsed = predict(df=data, endpoint="multi")
|
83 |
+
return {"output": parsed}
|
84 |
|
85 |
if __name__ == "__main__":
|
86 |
+
uvicorn.run("main:app", reload=True)
|