Spaces:
Runtime error
Runtime error
| """ | |
| FastAPI script for Sepssis and model prediction | |
| Author: Equity | |
| Date: May.30th 2023 | |
| """ | |
| # The library for the API Code | |
| from fastapi import FastAPI | |
| import pickle | |
| import uvicorn | |
| from pydantic import BaseModel | |
| import pandas as pd | |
| # Declare the data with its components and their type | |
| class model_input(BaseModel): | |
| PRG: int | |
| PL: int | |
| PR: int | |
| SK: int | |
| TS: int | |
| M11: float | |
| BD2: float | |
| Age: int | |
| Insurance:int | |
| app = FastAPI(title = 'Sepssis API', | |
| description = 'An API that takes input and display the predictions', | |
| version = '0.1.0') | |
| # Load the saved data | |
| toolkit = "P6_toolkit" | |
| def load_toolkit(filepath = toolkit): | |
| with open(toolkit, "rb") as file: | |
| loaded_toolkit = pickle.load(file) | |
| return loaded_toolkit | |
| toolkit = load_toolkit() | |
| scaler = toolkit["scaler"] | |
| model = toolkit["model"] | |
| async def hello(): | |
| return "Welcome to our model API" | |
| async def prediction(input:model_input): | |
| data = { | |
| 'PRG': input.PRG, | |
| 'PL': input.PL, | |
| 'PR': input.PR, | |
| 'SK': input.SK, | |
| 'TS': input.TS, | |
| 'M11': input.M11, | |
| 'BD2': input.BD2, | |
| 'Age': input.Age, | |
| 'Insurance': input.Insurance, | |
| } | |
| # prepare the data as a dataframe | |
| df = pd.DataFrame(data, index=[0]) | |
| #numerical features | |
| numeric_columns = [ 'PRG', 'PL', 'PR', 'SK', 'TS', 'M11', 'BD2', 'Age','Insurance'] | |
| #scaling | |
| Scaler = scaler.transform(df[numeric_columns]) | |
| Scaled = pd.DataFrame(Scaler) | |
| prediction = model.predict(Scaled).tolist() | |
| probability = model.predict_proba(Scaled) | |
| # Labelling Model output | |
| if (prediction[0] < 0.5): | |
| prediction = "Negative. This person has no Sepssis" | |
| else: | |
| prediction = "Positive. This person has Sepssis" | |
| data['prediction'] = prediction | |
| return data | |
| # Launch the app | |
| if __name__ == "__main__": | |
| uvicorn.run("API_app:app",host = '0.0.0.0', port = 7860) |