# Import the necessary libraries import gradio as gr # Gradio is a library to quickly build and share demos for ML models import joblib # joblib is used here to load the trained model from a file import numpy as np # NumPy for numerical operations (if needed for array manipulation) from huggingface_hub import hf_hub_download HF_TOKEN = 'hf_your_token_here' # Replace with your actual Hugging Face token # Replace with your actual Hugging Face model repo ID and file names # For example, repo_id="username/iris-decision-tree" # Use repo_type="model" if it's a model repository model_path = hf_hub_download( repo_id="Jesus02/iris-model-clase", filename="iris_dt.joblib", # The model file stored in the HF repo repo_type="model" # Could also be 'dataset' if you're storing it that way ) # Load the trained model pipeline = joblib.load(model_path) # Define a function that takes the four iris measurements as input # and returns the predicted iris species label. def predict_iris(sepal_length, sepal_width, petal_length, petal_width): # Convert the input parameters into a 2D list/array because # scikit-learn's predict() expects a 2D array of shape (n_samples, n_features) input = np.array([[sepal_length, sepal_width, petal_length, petal_width]]) prediction = pipeline.predict(input) # Convert the prediction to the string label if prediction == 0: return 'iris-setosa' elif prediction == 1: return 'Iris-versicolor' elif prediction == 2: return 'Iris-virginica' else: return "Invalid prediction" # Create a Gradio Interface: # - fn: the function to call for inference # - inputs: a list of component types to collect user input (in this case, four numeric values) # - outputs: how the prediction is displayed (in this case, as text) # - live: whether to update the output in real-time as the user types interface = gr.Interface( fn=predict_iris, inputs=["number", "number", "number", "number"], outputs="text", live=True, title="Iris Species Identifier", description="Enter the four measurements to predict the Iris species." ) # Run the interface when this script is executed directly. # This will launch a local Gradio server and open a user interface in the browser. if __name__ == "__main__": # To create a public link, set the parameter share=True interface.launch() ''' # The Flag button allows users (or testers) to mark or “flag” # a particular input-output interaction for later review. # When someone clicks Flag, Gradio saves the input values (and often the output) to a log.csv file # letting you keep track of interesting or potentially problematic cases for debugging or analysis later on '''