CodingBuddy's picture
Upload folder using huggingface_hub
fefeab0 verified
raw
history blame
3 kB
import streamlit as st
import pandas as pd
from huggingface_hub import hf_hub_download
import joblib
import os
from config import HF_REPO_ID
# Assuming config.py is in the same directory or accessible via PYTHONPATH
# from config import HF_REPO_ID # If you want to load HF_REPO_ID from config.py
# For now, hardcode the repo ID as it's defined elsewhere in the notebook
#HF_REPO_ID = "CodingBuddy/Predictive-maintenance"
# Download and load the model
try:
model_path = hf_hub_download(repo_id=HF_REPO_ID, filename="Predictive_maintenance_project_best_model.joblib", repo_type="model")
model = joblib.load(model_path)
st.success("Model loaded successfully!")
except Exception as e:
st.error(f"Error loading model: {e}")
st.stop()
# Streamlit UI for Predictive Maintenance
st.title("Engine Predictive Maintenance App")
st.write("""
This application predicts whether an engine requires maintenance based on its sensor readings.
Please enter the engine sensor data below to get a prediction.
""")
# User input
st.header("Engine Sensor Data Input")
Engine_RPM = st.number_input("Engine RPM (Revolutions per Minute)", min_value=0.0, max_value=10000.0, value=700.0, step=1.0)
Lub_oil_pressure = st.number_input("Lubricating Oil Pressure (bar/kPa)", min_value=0.0, max_value=50.0, value=2.493592, step=0.000001, format="%.6f")
Fuel_pressure = st.number_input("Fuel Pressure (bar/kPa)", min_value=0.0, max_value=50.0, value=11.790927, step=0.000001, format="%.6f")
Coolant_pressure = st.number_input("Coolant Pressure (bar/kPa)", min_value=0.0, max_value=50.0, value=3.178981, step=0.000001, format="%.6f")
lub_oil_temp = st.number_input("Lubricating Oil Temperature (°C)", min_value=0.0, max_value=200.0, value=84.144163, step=0.000001, format="%.6f")
Coolant_temp = st.number_input("Coolant Temperature (°C)", min_value=0.0, max_value=200.0, value=81.632187, step=0.000001, format="%.6f")
# Assemble input into DataFrame
input_data = pd.DataFrame({
'Engine_rpm': [Engine_RPM],
'Lub_oil_pressure': [Lub_oil_pressure],
'Fuel_pressure': [Fuel_pressure],
'Coolant_pressure': [Coolant_pressure],
'lub_oil_temp': [lub_oil_temp],
'Coolant_temp': [Coolant_temp]
})
if st.button("Predict Engine Condition"):
try:
# Ensure the model is loaded before predicting
if 'model' in locals() and model is not None:
prediction = model.predict(input_data)[0]
# Assuming 0 = Normal, 1 = Requires Maintenance (Faulty)
result = "Requires Maintenance (Faulty)" if prediction == 1 else "Operating Normally"
st.subheader("Prediction Result:")
if prediction == 1:
st.error(f"The model predicts: **{result}**")
else:
st.success(f"The model predicts: **{result}**")
else:
st.warning("Model is not loaded. Please check the model loading process.")
except Exception as e:
st.error(f"An error occurred during prediction: {e}")