|
|
| import streamlit as st |
| import pandas as pd |
| import joblib |
|
|
| st.set_page_config(page_title="Predictive Maintenance App V2", layout="centered") |
|
|
| @st.cache_resource |
| def load_model(): |
| return joblib.load("best_model.joblib") |
|
|
| st.title("Predictive Maintenance for Engine Health") |
| st.write("Enter the engine sensor values below to predict engine condition.") |
|
|
| engine_rpm = st.number_input("Engine RPM", min_value=0.0, value=850.0) |
| lub_oil_pressure = st.number_input("Lub Oil Pressure", min_value=0.0, value=3.5) |
| fuel_pressure = st.number_input("Fuel Pressure", min_value=0.0, value=6.8) |
| coolant_pressure = st.number_input("Coolant Pressure", min_value=0.0, value=2.4) |
| lub_oil_temp = st.number_input("Lub Oil Temperature", min_value=0.0, value=78.0) |
| coolant_temp = st.number_input("Coolant Temperature", min_value=0.0, value=80.5) |
|
|
| if st.button("Predict Engine Condition"): |
| try: |
| model = load_model() |
|
|
| input_df = 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 |
| }]) |
|
|
| prediction = model.predict(input_df)[0] |
|
|
| if prediction == 1: |
| st.error("Prediction: Engine may require maintenance.") |
| else: |
| st.success("Prediction: Engine appears to be operating normally.") |
|
|
| st.write("Input dataframe used for prediction:") |
| st.dataframe(input_df) |
|
|
| except Exception as e: |
| st.error(f"Prediction failed: {e}") |
|
|