MaheshP98's picture
Update app.py
14035fd verified
raw
history blame
1.54 kB
import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
import streamlit as st
import pandas as pd
from utils.load_data import load_logs
from utils.visualize import plot_usage
from utils.report import generate_pdf
from models.anomaly import detect_anomalies
from utils.amc import upcoming_amc_devices
st.set_page_config(page_title="LabOps Dashboard", layout="wide")
st.title("πŸ“Š Multi-Device LabOps Dashboard")
uploaded_files = st.file_uploader("Upload Device Logs (CSV)", accept_multiple_files=True)
if uploaded_files:
df = load_logs(uploaded_files)
st.subheader("πŸ“‹ Uploaded Logs")
st.dataframe(df.head())
st.subheader("πŸ“ˆ Daily Usage Chart")
st.pyplot(plot_usage(df))
st.subheader("🚨 Detected Anomalies")
try:
anomalies = detect_anomalies(df)
st.dataframe(anomalies)
except Exception as e:
st.error(f"Failed to compute anomalies: {e}")
st.subheader("πŸ›  Upcoming AMC Devices")
if "amc_expiry" in df.columns:
try:
amc_df = upcoming_amc_devices(df)
st.dataframe(amc_df)
except Exception as e:
st.error(f"Failed to process AMC dates: {e}")
else:
st.info("Column `amc_expiry` not found in uploaded data.")
if st.button("πŸ“„ Generate PDF Report"):
try:
generate_pdf(df)
st.success("βœ… PDF report generated and saved to /tmp/labops_report.pdf")
except Exception as e:
st.error(f"Failed to generate PDF: {e}")