Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import numpy as np | |
| import pandas as pd | |
| from sklearn.datasets import load_breast_cancer | |
| from zenml.client import Client | |
| import os | |
| ZENML_STORE_API_KEY = os.getenv("ZENML_STORE_API_KEY", None) | |
| ZENML_STORE_URL = os.getenv("ZENML_STORE_URL", None) | |
| if ZENML_STORE_API_KEY: | |
| # Use os.process to call zenml connect --url ZENML_STORE_URL --api-key ZENML_STORE_API_KEY | |
| os.system(f"zenml connect --url {ZENML_STORE_URL} --api-key {ZENML_STORE_API_KEY}") | |
| client = Client() | |
| zenml_model_version = client.get_model_version("breast_cancer_classifier", "production") | |
| preprocess_pipeline = zenml_model_version.get_artifact("preprocess_pipeline").load() | |
| # Load the model | |
| clf = zenml_model_version.get_artifact("model").load() | |
| # Load dataset to get feature names | |
| data = load_breast_cancer() | |
| feature_names = data.feature_names | |
| def classify(*input_features): | |
| # Convert the input features to pandas DataFrame | |
| input_features = np.array(input_features).reshape(1, -1) | |
| input_df = pd.DataFrame(input_features, columns=feature_names) | |
| # Pre-process the DataFrame | |
| input_df["target"] = pd.Series([1] * input_df.shape[0]) | |
| input_df = preprocess_pipeline.transform(input_df) | |
| input_df.drop(columns=["target"], inplace=True) | |
| # Make a prediction | |
| prediction_proba = clf.predict_proba(input_df)[0] | |
| # Map predicted class probabilities | |
| classes = data.target_names | |
| return {classes[idx]: prob for idx, prob in enumerate(prediction_proba)} | |
| # Define a list of Number inputs for each feature | |
| input_components = [gr.Number(label=feature_name, default=0) for feature_name in feature_names] | |
| # Define the Gradio interface | |
| iface = gr.Interface( | |
| fn=classify, | |
| inputs=input_components, | |
| outputs=gr.Label(num_top_classes=2), | |
| title="Breast Cancer Classifier", | |
| description="Enter the required measurements to predict the classification for breast cancer." | |
| ) | |
| # Launch the Gradio app | |
| iface.launch() |