SamanthaStorm commited on
Commit
9387da0
·
verified ·
1 Parent(s): b0596c3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -10
app.py CHANGED
@@ -243,7 +243,7 @@ def analyze_single_message(text, thresholds):
243
 
244
  return abuse_score, threshold_labels, top_patterns, result, stage, darvo_score
245
 
246
- def analyze_composite(msg1, msg2, msg3, *answers_and_none):
247
  none_selected_checked = answers_and_none[-1]
248
  responses_checked = any(answers_and_none[:-1])
249
  none_selected = not responses_checked and none_selected_checked
@@ -260,17 +260,19 @@ def analyze_composite(msg1, msg2, msg3, *answers_and_none):
260
  )
261
 
262
  messages = [msg1, msg2, msg3]
263
- active = [m for m in messages if m.strip()]
 
264
  if not active:
265
  return "Please enter at least one message."
266
 
267
- results = [analyze_single_message(m, THRESHOLDS.copy()) for m in active]
268
- abuse_scores = [r[0] for r in results]
269
- top_labels = [r[2][0][0] for r in results]
270
- top_scores = [r[2][0][1] for r in results]
271
- sentiments = [r[3]['label'] for r in results]
272
- stages = [r[4] for r in results]
273
- darvo_scores = [r[5] for r in results]
 
274
 
275
  composite_abuse = int(round(sum(abuse_scores) / len(abuse_scores)))
276
  top_label = f"{top_labels[0]} – {int(round(top_scores[0] * 100))}%"
@@ -300,7 +302,8 @@ def analyze_composite(msg1, msg2, msg3, *answers_and_none):
300
 
301
  return out
302
 
303
- textbox_inputs = [gr.Textbox(label=f"Message {i+1}") for i in range(3)]
 
304
  quiz_boxes = [gr.Checkbox(label=q) for q, _ in ESCALATION_QUESTIONS]
305
  none_box = gr.Checkbox(label="None of the above")
306
 
 
243
 
244
  return abuse_score, threshold_labels, top_patterns, result, stage, darvo_score
245
 
246
+ def analyze_composite(msg1, date1, msg2, date2, msg3, date3, *answers_and_none):
247
  none_selected_checked = answers_and_none[-1]
248
  responses_checked = any(answers_and_none[:-1])
249
  none_selected = not responses_checked and none_selected_checked
 
260
  )
261
 
262
  messages = [msg1, msg2, msg3]
263
+ dates = [date1, date2, date3]
264
+ active = [(m, d) for m, d in zip(messages, dates) if m.strip()]
265
  if not active:
266
  return "Please enter at least one message."
267
 
268
+ results = [(analyze_single_message(m, THRESHOLDS.copy()), d) for m, d in active]
269
+ abuse_scores = [r[0][0] for r in results]
270
+ top_labels = [r[0][2][0][0] for r in results]
271
+ top_scores = [r[0][2][0][1] for r in results]
272
+ sentiments = [r[0][3]['label'] for r in results]
273
+ stages = [r[0][4] for r in results]
274
+ darvo_scores = [r[0][5] for r in results]
275
+ dates_used = [r[1] or "Undated" for r in results] # Store dates for future mapping
276
 
277
  composite_abuse = int(round(sum(abuse_scores) / len(abuse_scores)))
278
  top_label = f"{top_labels[0]} – {int(round(top_scores[0] * 100))}%"
 
302
 
303
  return out
304
 
305
+ message_date_pairs = [(gr.Textbox(label=f"Message {i+1}"), gr.Textbox(label=f"Date {i+1} (optional)", placeholder="e.g. 2025-04-22")) for i in range(3)]
306
+ textbox_inputs = [item for pair in message_date_pairs for item in pair] # Flatten for Gradio input
307
  quiz_boxes = [gr.Checkbox(label=q) for q, _ in ESCALATION_QUESTIONS]
308
  none_box = gr.Checkbox(label="None of the above")
309