Spaces:
Sleeping
Sleeping
import gradio as gr | |
from fastapi import FastAPI | |
from risk_model import predict_risk, retrain_model, get_history_df | |
app = FastAPI() | |
gradio_app = gr.Blocks() | |
with gradio_app: | |
gr.Markdown("## 🔥 Heating Mantle Safety Risk Predictor") | |
with gr.Row(): | |
temp = gr.Number(label="Max Temperature (°C)", value=100) | |
duration = gr.Number(label="Duration (min)", value=30) | |
with gr.Row(): | |
predict_btn = gr.Button("🔍 Predict") | |
retrain_btn = gr.Button("🔁 Retrain Model") | |
result = gr.Textbox(label="Risk Prediction") | |
score = gr.Textbox(label="Confidence (%)") | |
retrain_output = gr.Textbox(label="Retrain Status") | |
history_table = gr.Dataframe(headers=["Temperature", "Duration", "Risk", "Confidence"], label="📈 Prediction History") | |
def classify(temp, duration): | |
if temp <= 0 or duration <= 0: | |
return "Invalid Input", "Use values > 0", get_history_df() | |
risk, confidence = predict_risk(temp, duration) | |
emoji = "🟢" if risk == "Low" else "🟠" if risk == "Moderate" else "🔴" | |
return f"{emoji} {risk}", f"{confidence}%", get_history_df() | |
predict_btn.click(classify, inputs=[temp, duration], outputs=[result, score, history_table]) | |
retrain_btn.click(retrain_model, outputs=[retrain_output]) | |
# Mount Gradio onto FastAPI | |
def read_root(): | |
return {"message": "Heating Mantle Risk API is running!"} | |
app = gr.mount_gradio_app(app, gradio_app, path="/predict-ui") | |