deepakietb's picture
Upload app.py with huggingface_hub
1a53ffe verified
Raw
History Blame Contribute Delete
1.85 kB
import os
import pandas as pd
import joblib
import streamlit as st
from huggingface_hub import snapshot_download
# Model repository configuration
repo_identifier = "rakesh1248/random_forest_engine_condition_classifier"
model_file = "random_forest_model.joblib"
cache_dir = "./model_cache"
os.makedirs(cache_dir, exist_ok=True)
@st.cache_resource
def initialize_model():
try:
local_repo = snapshot_download(repo_id=repo_identifier, local_dir=cache_dir)
model_location = os.path.join(local_repo, model_file)
return joblib.load(model_location)
except Exception as err:
st.error(f"Model loading failed: {err}")
st.stop()
model_instance = initialize_model()
# UI configuration
st.set_page_config(layout="wide")
st.title("Predictive Maintenance Solution for Engine Systems")
st.sidebar.header("Input Parameters")
rpm_val = st.sidebar.slider("Engine RPM", 60, 2300, 750)
oil_pressure = st.sidebar.slider("Lub Oil Pressure", 0.0, 8.0, 3.5, 0.1)
fuel_press = st.sidebar.slider("Fuel Pressure", 0.0, 22.0, 6.0, 0.1)
cool_press = st.sidebar.slider("Coolant Pressure", 0.0, 8.0, 2.0, 0.1)
oil_temp = st.sidebar.slider("Lub Oil Temperature", 70.0, 90.0, 78.0, 0.1)
cool_temp = st.sidebar.slider("Coolant Temperature", 60.0, 200.0, 80.0, 0.1)
input_frame = pd.DataFrame([{
'Engine rpm': rpm_val,
'Lub oil pressure': oil_pressure,
'Fuel pressure': fuel_press,
'Coolant pressure': cool_press,
'lub oil temp': oil_temp,
'Coolant temp': cool_temp
}])
st.write(input_frame)
if st.button("Predict"):
pred = model_instance.predict(input_frame)
prob = model_instance.predict_proba(input_frame)
if pred[0] == 1:
st.error("Faulty Engine")
else:
st.success("Normal Engine")
st.write(f"Normal: {prob[0][0]:.2f}")
st.write(f"Faulty: {prob[0][1]:.2f}")