sutdaiday commited on
Commit
2a9914a
Β·
1 Parent(s): d9100b7
ambuj_CraigslistBargain_results.csv ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ UserID,Dataset,Background,Response A Method,Response B Method,Persuasiveness,Coherence,Naturalness,Overall
2
+ ambuj,CraigslistBargain,User interested in a set of textbooks priced at $120.,Ours,PPDPP,Prefer Response A,Prefer Response B,Prefer Response B,Prefer Response B
ambuj_ESConv_results.csv ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ UserID,Dataset,Background,Response A Method,Response B Method,Identification,Comforting,Suggestion,Overall
2
+ ambuj,ESConv,User misses family who live overseas and feels homesick.,PPDPP,Ours,Prefer Response B,Prefer Response B,Prefer Response A,Prefer Response A
3
+ ambuj,ESConv,User complains of creative block when starting a new art project.,DPDP,Ours,Prefer Response A,Prefer Response A,Prefer Response A,Prefer Response B
4
+ ambuj,ESConv,User feels bombarded by negative social media comparisons.,DPDP,Ours,No preference,Prefer Response B,Prefer Response B,Prefer Response A
5
+ ambuj,ESConv,User expresses fear about planning a solo travel adventure.,Ours,DPDP,Prefer Response A,Prefer Response B,Prefer Response A,Prefer Response B
app.py CHANGED
@@ -320,79 +320,79 @@ def cb_prev_fn(user_id, dataset, examples, idx, responses, per, coh, nat, ovl_cb
320
 
321
 
322
  # ─── Build Gradio App ──────────────────────────────────────────────────────────
323
- # ─── Build Gradio App ──────────────────────────────────────────────────────────
324
- with gr.Blocks() as demo: # ← title arg removed here!
325
-
326
  # ── Login ────────────────────────────────────────────────────────────────
327
  with gr.Column() as login_panel:
328
  gr.Markdown("## Human Evaluation Survey")
329
  user_id_in = gr.Textbox(label="User ID")
330
- ds_dd = gr.Dropdown(list(DATASET_FILES.keys()), label="Select dataset")
331
- start_btn = gr.Button("Start survey")
332
-
333
- # ── Shared state (requires Gradio β‰₯3.6.0) ─────────────────────────────────
334
- uid_state = gr.State("") # will now work once you upgrade Gradio
335
- ds_state = gr.State("")
336
- ex_state = gr.State([])
337
- idx_state = gr.State(0)
338
  resp_state = gr.State({})
339
 
340
  # ── ESConv Panel ──────────────────────────────────────────────────────────
341
  with gr.Column(visible=False) as es_panel:
342
- bg = gr.Textbox(label="Background context", interactive=False)
343
  with gr.Row():
344
  lbox = gr.Textbox(label="Response A", interactive=False)
345
  rbox = gr.Textbox(label="Response B", interactive=False)
346
- ident = gr.Radio(
347
- ["Prefer Response A","Prefer Response B","No preference"],
348
- label="Identification (Ident.)"
349
- )
350
- com = gr.Radio(
351
- ["Prefer Response A","Prefer Response B","No preference"],
352
- label="Comforting (Com.)"
353
- )
354
- sug = gr.Radio(
355
- ["Prefer Response A","Prefer Response B","No preference"],
356
- label="Suggestion (Sug.)"
357
- )
358
- ovl_es = gr.Radio(
359
- ["Prefer Response A","Prefer Response B","No preference"],
360
- label="Overall (Ov.)"
361
- )
362
- err_es = gr.HTML(visible=False)
363
- prog = gr.Text(label="Progress")
 
364
  with gr.Row():
365
- prev_btn = gr.Button("β—€ Prev")
366
- next_btn = gr.Button("β–Ά Next")
367
  logout_es = gr.Button("πŸšͺ Logout")
368
 
369
  # ── CraigslistBargain Panel ──────────────────────────────────────────────
370
  with gr.Column(visible=False) as cb_panel:
371
- bg_cb = gr.Textbox(label="Background context", interactive=False)
372
  with gr.Row():
373
  lbox_cb = gr.Textbox(label="Response A", interactive=False)
374
  rbox_cb = gr.Textbox(label="Response B", interactive=False)
375
- per = gr.Radio(
376
- ["Prefer Response A","Prefer Response B","No preference"],
377
- label="Persuasiveness (Per.)"
378
- )
379
- coh = gr.Radio(
380
- ["Prefer Response A","Prefer Response B","No preference"],
381
- label="Coherence (Coh.)"
382
- )
383
- nat = gr.Radio(
384
- ["Prefer Response A","Prefer Response B","No preference"],
385
- label="Naturalness (Nat.)"
386
- )
387
- ovl_cb = gr.Radio(
388
- ["Prefer Response A","Prefer Response B","No preference"],
389
- label="Overall"
390
- )
391
- err_cb = gr.HTML(visible=False)
 
392
  prog_cb = gr.Text(label="Progress")
393
  with gr.Row():
394
- prev_cb = gr.Button("β—€ Prev")
395
- next_cb = gr.Button("β–Ά Next")
396
  logout_cb = gr.Button("πŸšͺ Logout")
397
 
398
  # ── Wiring ───────────────────────────────────────────────────────────────
@@ -400,67 +400,96 @@ with gr.Blocks() as demo: # ← title arg removed here!
400
  login_fn,
401
  inputs=[user_id_in, ds_dd],
402
  outputs=[
403
- login_panel, es_panel, cb_panel,
404
- uid_state, ds_state, ex_state, idx_state, resp_state,
405
- # ESConv panel outputs:
406
- bg, lbox, rbox, prog, ident, com, sug, ovl_es, err_es,
407
- # CB panel outputs:
408
- bg_cb, lbox_cb, rbox_cb, prog_cb, per, coh, nat, ovl_cb, err_cb,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
409
  ],
410
  )
411
 
412
  # ESConv navigation
413
  next_btn.click(
414
  es_next_fn,
415
- inputs=[uid_state, ds_state, ex_state, idx_state, resp_state,
416
- ident, com, sug, ovl_es],
417
- outputs=[bg, lbox, rbox, prog, idx_state, resp_state,
418
- ident, com, sug, ovl_es, err_es],
419
  )
420
  prev_btn.click(
421
  es_prev_fn,
422
- inputs=[uid_state, ds_state, ex_state, idx_state, resp_state,
423
- ident, com, sug, ovl_es],
424
- outputs=[bg, lbox, rbox, prog, idx_state, resp_state,
425
- ident, com, sug, ovl_es, err_es],
426
  )
427
 
428
  # CB navigation
429
  next_cb.click(
430
  cb_next_fn,
431
- inputs=[uid_state, ds_state, ex_state, idx_state, resp_state,
432
- per, coh, nat, ovl_cb],
433
- outputs=[bg_cb, lbox_cb, rbox_cb, prog_cb, idx_state, resp_state,
434
- per, coh, nat, ovl_cb, err_cb],
435
  )
436
  prev_cb.click(
437
  cb_prev_fn,
438
- inputs=[uid_state, ds_state, ex_state, idx_state, resp_state,
439
- per, coh, nat, ovl_cb],
440
- outputs=[bg_cb, lbox_cb, rbox_cb, prog_cb, idx_state, resp_state,
441
- per, coh, nat, ovl_cb, err_cb],
442
  )
443
 
444
- # Logout (shared)
445
- for btn in (logout_es, logout_cb):
446
- btn.click(
447
  logout_fn,
448
  inputs=[uid_state, ds_state, ex_state, idx_state, resp_state],
449
  outputs=[
450
- login_panel, es_panel, cb_panel,
451
- uid_state, ds_state, ex_state, idx_state, resp_state,
452
- # reset ESConv
453
- bg, lbox, rbox, prog, ident, com, sug, ovl_es, err_es,
454
- # reset CB
455
- bg_cb, lbox_cb, rbox_cb, prog_cb, per, coh, nat, ovl_cb, err_cb,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
456
  ],
457
  )
458
 
459
  # ─── Run ───────────────────────────────────────────────────────────────────────
460
  if __name__ == "__main__":
461
- demo.launch(share=True)
462
-
463
-
464
- # ─── Run ───────────────────────────────────────────────────────────────────────
465
- if __name__ == "__main__":
466
- demo.launch(share=True)
 
320
 
321
 
322
  # ─── Build Gradio App ──────────────────────────────────────────────────────────
323
+ with gr.Blocks() as demo:
 
 
324
  # ── Login ────────────────────────────────────────────────────────────────
325
  with gr.Column() as login_panel:
326
  gr.Markdown("## Human Evaluation Survey")
327
  user_id_in = gr.Textbox(label="User ID")
328
+ ds_dd = gr.Dropdown(list(DATASET_FILES.keys()), label="Select dataset")
329
+ start_btn = gr.Button("Start survey")
330
+
331
+ # Shared state
332
+ uid_state = gr.State("")
333
+ ds_state = gr.State("")
334
+ ex_state = gr.State([])
335
+ idx_state = gr.State(0)
336
  resp_state = gr.State({})
337
 
338
  # ── ESConv Panel ──────────────────────────────────────────────────────────
339
  with gr.Column(visible=False) as es_panel:
340
+ bg = gr.Textbox(label="Background context", interactive=False)
341
  with gr.Row():
342
  lbox = gr.Textbox(label="Response A", interactive=False)
343
  rbox = gr.Textbox(label="Response B", interactive=False)
344
+
345
+ ident = gr.Radio(
346
+ ["Prefer Response A", "Prefer Response B", "No preference"],
347
+ label="Identification (Ident.)",
348
+ )
349
+ com = gr.Radio(
350
+ ["Prefer Response A", "Prefer Response B", "No preference"],
351
+ label="Comforting (Com.)",
352
+ )
353
+ sug = gr.Radio(
354
+ ["Prefer Response A", "Prefer Response B", "No preference"],
355
+ label="Suggestion (Sug.)",
356
+ )
357
+ ovl_es = gr.Radio(
358
+ ["Prefer Response A", "Prefer Response B", "No preference"],
359
+ label="Overall (Ov.)",
360
+ )
361
+ err_es = gr.HTML(visible=False)
362
+ prog = gr.Text(label="Progress")
363
  with gr.Row():
364
+ prev_btn = gr.Button("β—€ Prev")
365
+ next_btn = gr.Button("β–Ά Next")
366
  logout_es = gr.Button("πŸšͺ Logout")
367
 
368
  # ── CraigslistBargain Panel ──────────────────────────────────────────────
369
  with gr.Column(visible=False) as cb_panel:
370
+ bg_cb = gr.Textbox(label="Background context", interactive=False)
371
  with gr.Row():
372
  lbox_cb = gr.Textbox(label="Response A", interactive=False)
373
  rbox_cb = gr.Textbox(label="Response B", interactive=False)
374
+
375
+ per = gr.Radio(
376
+ ["Prefer Response A", "Prefer Response B", "No preference"],
377
+ label="Persuasiveness (Per.)",
378
+ )
379
+ coh = gr.Radio(
380
+ ["Prefer Response A", "Prefer Response B", "No preference"],
381
+ label="Coherence (Coh.)",
382
+ )
383
+ nat = gr.Radio(
384
+ ["Prefer Response A", "Prefer Response B", "No preference"],
385
+ label="Naturalness (Nat.)",
386
+ )
387
+ ovl_cb = gr.Radio(
388
+ ["Prefer Response A", "Prefer Response B", "No preference"],
389
+ label="Overall",
390
+ )
391
+ err_cb = gr.HTML(visible=False)
392
  prog_cb = gr.Text(label="Progress")
393
  with gr.Row():
394
+ prev_cb = gr.Button("β—€ Prev")
395
+ next_cb = gr.Button("β–Ά Next")
396
  logout_cb = gr.Button("πŸšͺ Logout")
397
 
398
  # ── Wiring ───────────────────────────────────────────────────────────────
 
400
  login_fn,
401
  inputs=[user_id_in, ds_dd],
402
  outputs=[
403
+ login_panel,
404
+ es_panel,
405
+ cb_panel,
406
+ uid_state,
407
+ ds_state,
408
+ ex_state,
409
+ idx_state,
410
+ resp_state,
411
+ # ESConv
412
+ bg,
413
+ lbox,
414
+ rbox,
415
+ prog,
416
+ ident,
417
+ com,
418
+ sug,
419
+ ovl_es,
420
+ err_es,
421
+ # CB
422
+ bg_cb,
423
+ lbox_cb,
424
+ rbox_cb,
425
+ prog_cb,
426
+ per,
427
+ coh,
428
+ nat,
429
+ ovl_cb,
430
+ err_cb,
431
  ],
432
  )
433
 
434
  # ESConv navigation
435
  next_btn.click(
436
  es_next_fn,
437
+ inputs=[uid_state, ds_state, ex_state, idx_state, resp_state, ident, com, sug, ovl_es],
438
+ outputs=[bg, lbox, rbox, prog, idx_state, resp_state, ident, com, sug, ovl_es, err_es],
 
 
439
  )
440
  prev_btn.click(
441
  es_prev_fn,
442
+ inputs=[uid_state, ds_state, ex_state, idx_state, resp_state, ident, com, sug, ovl_es],
443
+ outputs=[bg, lbox, rbox, prog, idx_state, resp_state, ident, com, sug, ovl_es, err_es],
 
 
444
  )
445
 
446
  # CB navigation
447
  next_cb.click(
448
  cb_next_fn,
449
+ inputs=[uid_state, ds_state, ex_state, idx_state, resp_state, per, coh, nat, ovl_cb],
450
+ outputs=[bg_cb, lbox_cb, rbox_cb, prog_cb, idx_state, resp_state, per, coh, nat, ovl_cb, err_cb],
 
 
451
  )
452
  prev_cb.click(
453
  cb_prev_fn,
454
+ inputs=[uid_state, ds_state, ex_state, idx_state, resp_state, per, coh, nat, ovl_cb],
455
+ outputs=[bg_cb, lbox_cb, rbox_cb, prog_cb, idx_state, resp_state, per, coh, nat, ovl_cb, err_cb],
 
 
456
  )
457
 
458
+ # Logout buttons (both panels share same callback)
459
+ for logout_btn in (logout_es, logout_cb):
460
+ logout_btn.click(
461
  logout_fn,
462
  inputs=[uid_state, ds_state, ex_state, idx_state, resp_state],
463
  outputs=[
464
+ login_panel,
465
+ es_panel,
466
+ cb_panel,
467
+ uid_state,
468
+ ds_state,
469
+ ex_state,
470
+ idx_state,
471
+ resp_state,
472
+ bg,
473
+ lbox,
474
+ rbox,
475
+ prog,
476
+ ident,
477
+ com,
478
+ sug,
479
+ ovl_es,
480
+ err_es,
481
+ bg_cb,
482
+ lbox_cb,
483
+ rbox_cb,
484
+ prog_cb,
485
+ per,
486
+ coh,
487
+ nat,
488
+ ovl_cb,
489
+ err_cb,
490
  ],
491
  )
492
 
493
  # ─── Run ───────────────────────────────────────────────────────────────────────
494
  if __name__ == "__main__":
495
+ demo.launch(share=True)
 
 
 
 
 
requirements.txt CHANGED
@@ -1,2 +1,2 @@
1
- gradio>=3.0
2
  pandas
 
1
+ gradio=3.6.0
2
  pandas