harishsohani's picture
Upload folder using huggingface_hub
70550e3 verified
# import streamlit library for IO
import streamlit as st
# import pandas
import pandas as pd
# library to download fine from Hugging Face
from huggingface_hub import hf_hub_download
# library to load model
import joblib
# ---------------------------------------------------------
# PAGE CONFIG
# ---------------------------------------------------------
st.set_page_config(
page_title="Predictive Maintenenace App",
layout="wide"
)
# Download and load the model
model_path = hf_hub_download(
repo_id="harishsohani/AIMLProjectTest",
filename="best_eng_fail_pred_model.joblib"
)
model = joblib.load(model_path)
# ---------------------------------------------------------
# TITLE
# ---------------------------------------------------------
st.title("🏖️ Predict for Maintenance")
st.write("Fill in the details below and click **Predict** to see if the Engine needs maintenance to prevent for failure.")
# ====================================
# Section : Capture Engine Parameters
# ====================================
st.subheader ("Engine Parameters")
rpm = st.number_input ("Engine RPM (50.0 to 2500.0)", min_value=50, max_value=2500, value=735, step=10)
lub_oil_pressure = st.number_input ("Lubricating oil pressure in kilopascals (kPa) (0.001 to 10.0)", min_value=0.001, max_value=10.0, value=3.30, step=0.001)
fuel_pressure = st.number_input ("Fuel Pressure in kilopascals (kPa) (0.01 to 25.0)", min_value=0.01, max_value=25.0, value=6.5, step=0.01)
coolant_pressure = st.number_input ("Coolant Pressure in kilopascals (kPa) (0.01 to 10.0)", min_value=0.01, max_value=10.0, value=2.25, step=0.1)
lub_oil_temp = st.number_input ("Lubricating oil Temperature in degrees Celsius (°C) (50.0 to 100.0)", min_value=50.0, max_value=100.0, value=75.0, step=0.1)
coolant_temp = st.number_input ("Coolant Temperature in degrees Celsius (°C) (50.0 to 200.0)", min_value=50.0, max_value=200.0, value=75.0, step=1.0)
# ==========================
# Single Value Prediction
# ==========================
if st.button("Check fo Maintenance"):
# extract the data collected into a structure
input_data = {
'Engine rpm' : float(rpm),
'Lub_oil_pressure' : float(lub_oil_pressure),
'Fuel_pressure' : float(fuel_pressure),
'Coolant_pressure' : float(coolant_pressure),
'lub_oil_temp' : float(lub_oil_temp),
'Coolant_temp' : float(lub_oil_temp),
}
input_df = pd.DataFrame([input_data])
st.success(result)
prediction = model.predict(input_df)[0]
result = "Engine is **likely** needs maintenance." if prediction == 1 \
else "Engine does not need any maintenance"
st.success(result)
# Show the etails of data frame prepared from user input
st.subheader("📦 Input Data Summary")
st.json(input_df)