import numpy as np import pandas as pd import streamlit as st USERNAME = "admin" PASSWORD = "password" st.title("Admin Panel") # Login Form login_success = False with st.form("login_form"): st.write("Please login to access the admin dashboard:") username = st.text_input("Username") password = st.text_input("Password", type="password") login_button = st.form_submit_button("Login") if login_button: if username == USERNAME and password == PASSWORD: login_success = True st.success("Login successful!") else: st.error("Invalid username or password.") # After successful login if login_success: # Display information about model performance st.header("Model Performance Metrics") model_r2_score = 0.85 # Mock R^2 Score avg_prediction_time = 0.15 # Mock Average Prediction Time in seconds num_predictions_made = 2000 # Mock Number of Predictions Made st.metric(label="R² Score", value=f"{model_r2_score:.2f}") st.metric( label="Average Prediction Time", value=f"{avg_prediction_time:.2f} seconds" ) st.metric(label="Total Predictions Made", value=num_predictions_made) st.subheader("Detailed Metrics") detailed_metrics = pd.DataFrame( { "Metric": ["MAE", "MSE", "RMSE", "Training Time"], "Value": [2.5, 3.4, 1.8, "1.2 hours"], } ) st.table(detailed_metrics) # Mocking prediction latency over time (example chart) st.subheader("Prediction Latency Over Time") latency_data = pd.DataFrame( { "Date": pd.date_range(end=pd.Timestamp.today(), periods=7).to_list(), "Prediction Time (s)": np.random.uniform(0.1, 0.5, 7), } ) st.line_chart(latency_data.set_index("Date")) # Button to simulate refreshing metrics if st.button("Refresh Metrics"): st.experimental_rerun() else: st.warning("Please login to access the admin panel.")