Signe22 commited on
Commit
7d53a1f
·
verified ·
1 Parent(s): 5d38669

Update monitoring_app.py

Browse files
Files changed (1) hide show
  1. monitoring_app.py +8 -15
monitoring_app.py CHANGED
@@ -47,12 +47,10 @@ def load_monitoring_summary() -> dict:
47
  def apply_filters(df: pd.DataFrame) -> pd.DataFrame:
48
  st.sidebar.header("Monitoring Filters")
49
 
50
- status_options = sorted(df["overall_status"].dropna().unique().tolist()) if not df.empty else []
51
  label_judgment_options = sorted(df["label_judgment"].dropna().unique().tolist()) if not df.empty else []
52
  predicted_label_options = sorted(df["predicted_label"].dropna().unique().tolist()) if not df.empty else []
53
  source_options = sorted(df["source"].dropna().unique().tolist()) if not df.empty else []
54
 
55
- selected_status = st.sidebar.multiselect("Overall status", status_options, default=status_options)
56
  selected_label_judgment = st.sidebar.multiselect("Label judgment", label_judgment_options, default=label_judgment_options)
57
  selected_predicted_labels = st.sidebar.multiselect("Predicted labels", predicted_label_options, default=[])
58
  selected_sources = st.sidebar.multiselect("Sources", source_options, default=[])
@@ -75,9 +73,6 @@ def apply_filters(df: pd.DataFrame) -> pd.DataFrame:
75
 
76
  filtered = df.copy()
77
 
78
- if selected_status:
79
- filtered = filtered[filtered["overall_status"].isin(selected_status)]
80
-
81
  if selected_label_judgment:
82
  filtered = filtered[filtered["label_judgment"].isin(selected_label_judgment)]
83
 
@@ -111,23 +106,22 @@ def render_summary(summary: dict, df: pd.DataFrame) -> None:
111
  st.subheader("Monitoring Overview")
112
 
113
  c1, c2, c3, c4 = st.columns(4)
 
114
  c1.metric("Total monitored", summary.get("total_monitored", 0))
115
  c2.metric("Needs review", summary.get("needs_review", 0))
116
  c3.metric("Shown after filters", len(df))
117
- c4.metric("Problem rate", f"{(len(df[df['overall_status'] != 'ok']) / len(df) * 100):.1f}%" if len(df) else "0.0%")
 
 
 
 
 
 
118
 
119
  if df.empty:
120
  st.info("No monitoring results match the current filters.")
121
  return
122
 
123
- st.markdown("#### Monitoring status distribution")
124
- status_df = df["overall_status"].value_counts().rename_axis("overall_status").reset_index(name="count")
125
- st.bar_chart(status_df.set_index("overall_status"))
126
-
127
- st.markdown("#### Label judgment distribution")
128
- label_df = df["label_judgment"].value_counts().rename_axis("label_judgment").reset_index(name="count")
129
- st.bar_chart(label_df.set_index("label_judgment"))
130
-
131
  def render_problem_patterns(df: pd.DataFrame) -> None:
132
  st.subheader("Problem Patterns")
133
 
@@ -216,7 +210,6 @@ def render_full_table(df: pd.DataFrame) -> None:
216
  "predicted_label",
217
  "label_judgment",
218
  "label_confidence",
219
- "overall_status",
220
  "requires_human_review",
221
  "title",
222
  ]
 
47
  def apply_filters(df: pd.DataFrame) -> pd.DataFrame:
48
  st.sidebar.header("Monitoring Filters")
49
 
 
50
  label_judgment_options = sorted(df["label_judgment"].dropna().unique().tolist()) if not df.empty else []
51
  predicted_label_options = sorted(df["predicted_label"].dropna().unique().tolist()) if not df.empty else []
52
  source_options = sorted(df["source"].dropna().unique().tolist()) if not df.empty else []
53
 
 
54
  selected_label_judgment = st.sidebar.multiselect("Label judgment", label_judgment_options, default=label_judgment_options)
55
  selected_predicted_labels = st.sidebar.multiselect("Predicted labels", predicted_label_options, default=[])
56
  selected_sources = st.sidebar.multiselect("Sources", source_options, default=[])
 
73
 
74
  filtered = df.copy()
75
 
 
 
 
76
  if selected_label_judgment:
77
  filtered = filtered[filtered["label_judgment"].isin(selected_label_judgment)]
78
 
 
106
  st.subheader("Monitoring Overview")
107
 
108
  c1, c2, c3, c4 = st.columns(4)
109
+
110
  c1.metric("Total monitored", summary.get("total_monitored", 0))
111
  c2.metric("Needs review", summary.get("needs_review", 0))
112
  c3.metric("Shown after filters", len(df))
113
+
114
+ c4.metric(
115
+ "Problem rate",
116
+ f"{(len(df[df['overall_status'] != 'ok']) / len(df) * 100):.1f}%"
117
+ if len(df)
118
+ else "0.0%"
119
+ )
120
 
121
  if df.empty:
122
  st.info("No monitoring results match the current filters.")
123
  return
124
 
 
 
 
 
 
 
 
 
125
  def render_problem_patterns(df: pd.DataFrame) -> None:
126
  st.subheader("Problem Patterns")
127
 
 
210
  "predicted_label",
211
  "label_judgment",
212
  "label_confidence",
 
213
  "requires_human_review",
214
  "title",
215
  ]