QuophyDzifa commited on
Commit
1d06340
1 Parent(s): 9b3e9ef

Delete src/main.py

Browse files
Files changed (1) hide show
  1. src/main.py +0 -109
src/main.py DELETED
@@ -1,109 +0,0 @@
1
-
2
- # Importations
3
-
4
- from typing import Union
5
- from fastapi import FastAPI
6
- import pickle
7
- from pydantic import BaseModel
8
- import pandas as pd
9
- import os
10
- import uvicorn
11
- from fastapi import HTTPException, status
12
- from sklearn.preprocessing import StandardScaler
13
- from sklearn.preprocessing import LabelEncoder
14
-
15
- # Setup Section
16
-
17
- # Create FastAPI instance
18
- app = FastAPI(title="Sepsis Prediction API",
19
- description="API for Predicting Sespsis ")
20
- # A function to load machine Learning components to re-use
21
-
22
-
23
- def Ml_loading_components(fp):
24
- with open(fp, "rb") as f:
25
- object = pickle.load(f)
26
- return (object)
27
-
28
-
29
- # Loading the machine learning components
30
- DIRPATH = os.path.dirname(os.path.realpath(__file__))
31
- ml_core_fp = os.path.join(DIRPATH, "ML", "ML_Model.pkl")
32
- ml_components_dict = Ml_loading_components(fp=ml_core_fp)
33
-
34
-
35
- # Defining the variables for each component
36
- label_encoder = ml_components_dict['label_encoder'] # The label encoder
37
- # Loaded scaler component
38
- scaler = ml_components_dict['scaler']
39
- # Loaded model
40
- model = ml_components_dict['model']
41
- # Defining our input variables
42
-
43
-
44
- class InputData(BaseModel):
45
- PRG: int
46
- PL: int
47
- BP: int
48
- SK: int
49
- TS: int
50
- BMI: float
51
- BD2: float
52
- Age: int
53
-
54
-
55
- """
56
- * PRG: Plasma glucose
57
-
58
- * PL: Blood Work Result-1 (mu U/ml)
59
-
60
- * PR: Blood Pressure (mmHg)
61
-
62
- * SK: Blood Work Result-2(mm)
63
-
64
- * TS: Blood Work Result-3 (muU/ml)
65
-
66
- * M11: Body mass index (weight in kg/(height in m)^2
67
-
68
- * BD2: Blood Work Result-4 (mu U/ml)
69
-
70
- * Age: patients age(years)
71
-
72
- """
73
- # Index route
74
-
75
-
76
- @app.get("/")
77
- def index():
78
- return {'message': 'Hello, Welcome to My Sepsis Prediction FastAPI'}
79
-
80
-
81
- # Create prediction endpoint
82
- @app.post("/predict")
83
- def predict(df: InputData):
84
-
85
- # Prepare the feature and structure them like in the notebook
86
- df = pd.DataFrame([df.dict().values()], columns=df.dict().keys())
87
-
88
- print(f"[Info] The inputed dataframe is : {df.to_markdown()}")
89
- age = df['Age']
90
- print(age)
91
- # Scaling the inputs
92
- df_scaled = scaler.transform(df)
93
-
94
- # Prediction
95
- raw_prediction = model.predict(df_scaled)
96
-
97
- if raw_prediction == 0:
98
- raise HTTPException(status_code=status.HTTP_200_OK,
99
- detail="The patient will Not Develop Sepsis")
100
- elif raw_prediction == 1:
101
- raise HTTPException(status_code=status.HTTP_200_OK,
102
- detail="The patient Will Develop Sepsis")
103
- else:
104
- raise HTTPException(
105
- status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail="Prediction Error")
106
-
107
-
108
- if __name__ == "__main__":
109
- uvicorn.run("main:app", reload=True)