Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import pandas as pd | |
| import requests | |
| # Streamlit app | |
| st.title("Penguin Species Predictor") | |
| # Fetch and display model details | |
| def fetch_model_details(model_id): | |
| response = requests.get(f"https://render-fastapi-ku5n.onrender.com/model/?model_id={model_id}") | |
| if response.status_code == 200: | |
| model_details = response.json()["model"][0] | |
| st.write("### Selected Model Details") | |
| for key, value in model_details.items(): | |
| st.write(f"{key}: {value}") | |
| else: | |
| st.error("Failed to fetch model details.") | |
| # Model selection | |
| model_options = { | |
| "Model 1": 101, | |
| "Model 2": 102, | |
| } | |
| model_name = st.selectbox("Select a Model", options=list(model_options.keys())) | |
| model_id = model_options[model_name] | |
| # Display model details for the selected model | |
| fetch_model_details(model_id) | |
| # User inputs for features | |
| st.write("## Enter Penguin Features") | |
| bill_length_mm = st.number_input("Bill Length (mm)", min_value=0.0, format="%.2f") | |
| bill_depth_mm = st.number_input("Bill Depth (mm)", min_value=0.0, format="%.2f") | |
| flipper_length_mm = st.number_input("Flipper Length (mm)", min_value=0.0, format="%.2f") | |
| body_mass_g = st.number_input("Body Mass (g)", min_value=0.0, format="%.2f") | |
| # Predict button | |
| if st.button("Predict"): | |
| # Preparing the payload for the POST request | |
| payload = { | |
| "model_id": model_id - 100, # Adjusted field name here | |
| "bill_length_mm": bill_length_mm, | |
| "bill_depth_mm": bill_depth_mm, | |
| "flipper_length_mm": flipper_length_mm, | |
| "body_mass_g": body_mass_g | |
| } | |
| # Making the POST request to the FastAPI prediction endpoint | |
| response = requests.post("https://render-fastapi-ku5n.onrender.com/predict/", json=payload) | |
| if response.status_code == 200: | |
| # Processing and displaying the prediction result | |
| prediction = response.json()["prediction"] | |
| st.write(f"## Predicted Penguin Species: {prediction}") | |
| else: | |
| # Handling failed prediction attempts | |
| st.error(f"Failed to make prediction. Status code: {response.status_code} Response: {response.text}") | |