Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import skops.io as sio | |
| import warnings | |
| from sklearn.exceptions import InconsistentVersionWarning | |
| # Suppress the version warnings | |
| warnings.filterwarnings("ignore", category=InconsistentVersionWarning) | |
| # Explicitly specify trusted types | |
| trusted_types = [ | |
| "sklearn.pipeline.Pipeline", | |
| "sklearn.preprocessing.OneHotEncoder", | |
| "sklearn.preprocessing.StandardScaler", | |
| "sklearn.compose.ColumnTransformer", | |
| "sklearn.preprocessing.OrdinalEncoder", | |
| "sklearn.impute.SimpleImputer", | |
| "sklearn.tree.DecisionTreeClassifier", | |
| "sklearn.ensemble.RandomForestClassifier", | |
| "numpy.dtype", | |
| ] | |
| pipe = sio.load("drug_pipeline.skops", trusted=trusted_types) | |
| def predict_drug(age, sex, blood_pressure, cholesterol, na_to_k_ratio): | |
| """Predict drugs based on patient features. | |
| Args: | |
| age (int): Age of patient | |
| sex (str): Sex of patient | |
| blood_pressure (str): Blood pressure level | |
| cholesterol (str): Cholesterol level | |
| na_to_k_ratio (float): Ratio of sodium to potassium in blood | |
| Returns: | |
| str: Predicted drug label | |
| """ | |
| features = [age, sex, blood_pressure, cholesterol, na_to_k_ratio] | |
| predicted_drug = pipe.predict([features])[0] | |
| label = f"Predicted Drug: {predicted_drug}" | |
| return label | |
| inputs = [ | |
| gr.Slider(15, 74, step=1, label="Age"), | |
| gr.Radio(["M", "F"], label="Sex"), | |
| gr.Radio(["HIGH", "LOW", "NORMAL"], label="Blood Pressure"), | |
| gr.Radio(["HIGH", "NORMAL"], label="Cholesterol"), | |
| gr.Slider(6.2, 38.2, step=0.1, label="Na_to_K"), | |
| ] | |
| outputs = [gr.Label(num_top_classes=5)] | |
| examples = [ | |
| [30, "M", "HIGH", "NORMAL", 15.4], | |
| [35, "F", "LOW", "NORMAL", 8], | |
| [50, "M", "HIGH", "HIGH", 34], | |
| ] | |
| title = "Drug Classification App" | |
| description = "Enter the details to correctly identify Drug type?" | |
| article = "Deployment of models to Hugging Face spaces using Gradio" | |
| gr.Interface( | |
| fn=predict_drug, | |
| inputs=inputs, | |
| outputs=outputs, | |
| examples=examples, | |
| title=title, | |
| description=description, | |
| article=article, | |
| theme=gr.themes.Soft(), | |
| ).launch(share=True) | |