Toya0421 commited on
Commit
b6a02f1
·
verified ·
1 Parent(s): d36eb6c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -5
app.py CHANGED
@@ -45,6 +45,7 @@ LOG_COLUMNS = [
45
  "passage_id",
46
  "original_level",
47
  "flesch_score", # ★追加:Group1=orig_lev, Group2=rewritten fre
 
48
  "action_time",
49
  "action_type",
50
  "page_text",
@@ -246,7 +247,6 @@ def extract_main_body_llm(text: str) -> str:
246
  """
247
  prompt = f"""
248
  Extract ONLY the main body text from the following passage.
249
-
250
  Rules:
251
  - Completely EXCLUDE titles, headings, chapter labels, author names, source information,
252
  footnotes, annotations, introductions, and any non-body content.
@@ -256,7 +256,6 @@ Rules:
256
  - Output only the extracted main body text.
257
  - Do not include explanations, comments, or metadata.
258
  - Do not include [TEXT START] and [TEXT END] in the output.
259
-
260
  [TEXT START]
261
  {text}
262
  [TEXT END]
@@ -395,6 +394,7 @@ def start_test(student_id, level_input, group_input, session_state):
395
  "passage_id": None,
396
  "original_level": None,
397
  "flesch_score": None,
 
398
  "action_time": now,
399
  "action_type": action,
400
  "page_text": None
@@ -431,6 +431,7 @@ def start_test(student_id, level_input, group_input, session_state):
431
  "passage_id": None,
432
  "original_level": None,
433
  "flesch_score": None,
 
434
  "action_time": now,
435
  "action_type": action,
436
  "page_text": None
@@ -484,6 +485,8 @@ def start_test(student_id, level_input, group_input, session_state):
484
  next_upd = gr.update(interactive=True, visible=True)
485
  finish_upd = gr.update(interactive=False, visible=False)
486
 
 
 
487
  now2 = (datetime.utcnow() + timedelta(hours=9)).isoformat()
488
  save_log({
489
  "user_id": user_id,
@@ -492,6 +495,7 @@ def start_test(student_id, level_input, group_input, session_state):
492
  "passage_id": pid,
493
  "original_level": orig_lev,
494
  "flesch_score": measured_fre, # ★追加
 
495
  "action_time": now2,
496
  "action_type": "page_displayed_1",
497
  "page_text": pages[0]
@@ -501,7 +505,8 @@ def start_test(student_id, level_input, group_input, session_state):
501
  "user_id": user_id,
502
  "level": level,
503
  "group": group,
504
- "used_passages": list(used_passages_set)
 
505
  }
506
 
507
  return (
@@ -530,6 +535,7 @@ def next_page(pages_json, current_page, total_pages, pid, orig_lev, session_stat
530
  user_id = session_state.get("user_id")
531
  level = session_state.get("level")
532
  group = session_state.get("group")
 
533
 
534
  now = (datetime.utcnow() + timedelta(hours=9)).isoformat()
535
  save_log({
@@ -539,6 +545,7 @@ def next_page(pages_json, current_page, total_pages, pid, orig_lev, session_stat
539
  "passage_id": pid,
540
  "original_level": orig_lev,
541
  "flesch_score": "", # ★列維持
 
542
  "action_time": now,
543
  "action_type": "next_pushed",
544
  "page_text": None
@@ -562,6 +569,7 @@ def next_page(pages_json, current_page, total_pages, pid, orig_lev, session_stat
562
  "passage_id": pid,
563
  "original_level": orig_lev,
564
  "flesch_score": "", # ★列維持
 
565
  "action_time": now2,
566
  "action_type": f"page_displayed_{new_page+1}",
567
  "page_text": pages[new_page]
@@ -595,6 +603,7 @@ def prev_page(pages_json, current_page, total_pages, pid, orig_lev, session_stat
595
  user_id = session_state.get("user_id")
596
  level = session_state.get("level")
597
  group = session_state.get("group")
 
598
 
599
  now = (datetime.utcnow() + timedelta(hours=9)).isoformat()
600
  save_log({
@@ -604,6 +613,7 @@ def prev_page(pages_json, current_page, total_pages, pid, orig_lev, session_stat
604
  "passage_id": pid,
605
  "original_level": orig_lev,
606
  "flesch_score": "", # ★列維持
 
607
  "action_time": now,
608
  "action_type": "prev_pushed",
609
  "page_text": None
@@ -632,6 +642,7 @@ def prev_page(pages_json, current_page, total_pages, pid, orig_lev, session_stat
632
  "passage_id": pid,
633
  "original_level": orig_lev,
634
  "flesch_score": "", # ★列維持
 
635
  "action_time": now2,
636
  "action_type": f"page_displayed_{new_page+1}",
637
  "page_text": pages[new_page]
@@ -654,6 +665,7 @@ def finish_or_retire(pages_json, current_page, pid, orig_lev, action, session_st
654
  level = session_state.get("level")
655
  group = session_state.get("group")
656
  used_passages_set = set(session_state.get("used_passages", []))
 
657
 
658
  pages = json.loads(pages_json)
659
  now = (datetime.utcnow() + timedelta(hours=9)).isoformat()
@@ -665,6 +677,7 @@ def finish_or_retire(pages_json, current_page, pid, orig_lev, action, session_st
665
  "passage_id": pid,
666
  "original_level": orig_lev,
667
  "flesch_score": "", # ★列維持
 
668
  "action_time": now,
669
  "action_type": action,
670
  "page_text": None
@@ -708,6 +721,8 @@ def finish_or_retire(pages_json, current_page, pid, orig_lev, action, session_st
708
  next_upd = gr.update(interactive=True, visible=True)
709
  finish_upd = gr.update(interactive=False, visible=False)
710
 
 
 
711
  now2 = (datetime.utcnow() + timedelta(hours=9)).isoformat()
712
  save_log({
713
  "user_id": user_id,
@@ -716,6 +731,7 @@ def finish_or_retire(pages_json, current_page, pid, orig_lev, action, session_st
716
  "passage_id": new_pid,
717
  "original_level": new_orig_lev,
718
  "flesch_score": measured_fre, # ★追加
 
719
  "action_time": now2,
720
  "action_type": "page_displayed_1",
721
  "page_text": new_pages[0]
@@ -725,7 +741,8 @@ def finish_or_retire(pages_json, current_page, pid, orig_lev, action, session_st
725
  "user_id": user_id,
726
  "level": level,
727
  "group": group,
728
- "used_passages": list(used_passages_set)
 
729
  }
730
 
731
  return (
@@ -901,7 +918,7 @@ custom_css = """
901
  with gr.Blocks(css=custom_css) as demo:
902
  gr.Markdown("# 📚 Reading Exercise")
903
 
904
- session_state = gr.State({"user_id": None, "level": None, "group": 2, "used_passages": []})
905
 
906
  student_id_input = gr.Textbox(label="Student ID")
907
 
 
45
  "passage_id",
46
  "original_level",
47
  "flesch_score", # ★追加:Group1=orig_lev, Group2=rewritten fre
48
+ "reading_order", # ★追加:そのユーザーが何番目の教材を読んでいるか
49
  "action_time",
50
  "action_type",
51
  "page_text",
 
247
  """
248
  prompt = f"""
249
  Extract ONLY the main body text from the following passage.
 
250
  Rules:
251
  - Completely EXCLUDE titles, headings, chapter labels, author names, source information,
252
  footnotes, annotations, introductions, and any non-body content.
 
256
  - Output only the extracted main body text.
257
  - Do not include explanations, comments, or metadata.
258
  - Do not include [TEXT START] and [TEXT END] in the output.
 
259
  [TEXT START]
260
  {text}
261
  [TEXT END]
 
394
  "passage_id": None,
395
  "original_level": None,
396
  "flesch_score": None,
397
+ "reading_order": 0, # ★追加
398
  "action_time": now,
399
  "action_type": action,
400
  "page_text": None
 
431
  "passage_id": None,
432
  "original_level": None,
433
  "flesch_score": None,
434
+ "reading_order": 0, # ★追加(教材未表示なので0)
435
  "action_time": now,
436
  "action_type": action,
437
  "page_text": None
 
485
  next_upd = gr.update(interactive=True, visible=True)
486
  finish_upd = gr.update(interactive=False, visible=False)
487
 
488
+ reading_order = 1 # ★追加:このユーザーの最初の教材は1番目
489
+
490
  now2 = (datetime.utcnow() + timedelta(hours=9)).isoformat()
491
  save_log({
492
  "user_id": user_id,
 
495
  "passage_id": pid,
496
  "original_level": orig_lev,
497
  "flesch_score": measured_fre, # ★追加
498
+ "reading_order": reading_order, # ★追加
499
  "action_time": now2,
500
  "action_type": "page_displayed_1",
501
  "page_text": pages[0]
 
505
  "user_id": user_id,
506
  "level": level,
507
  "group": group,
508
+ "used_passages": list(used_passages_set),
509
+ "reading_order": reading_order # ★追加
510
  }
511
 
512
  return (
 
535
  user_id = session_state.get("user_id")
536
  level = session_state.get("level")
537
  group = session_state.get("group")
538
+ reading_order = session_state.get("reading_order", 1) # ★追加
539
 
540
  now = (datetime.utcnow() + timedelta(hours=9)).isoformat()
541
  save_log({
 
545
  "passage_id": pid,
546
  "original_level": orig_lev,
547
  "flesch_score": "", # ★列維持
548
+ "reading_order": reading_order, # ★追加
549
  "action_time": now,
550
  "action_type": "next_pushed",
551
  "page_text": None
 
569
  "passage_id": pid,
570
  "original_level": orig_lev,
571
  "flesch_score": "", # ★列維持
572
+ "reading_order": reading_order, # ★追加
573
  "action_time": now2,
574
  "action_type": f"page_displayed_{new_page+1}",
575
  "page_text": pages[new_page]
 
603
  user_id = session_state.get("user_id")
604
  level = session_state.get("level")
605
  group = session_state.get("group")
606
+ reading_order = session_state.get("reading_order", 1) # ★追加
607
 
608
  now = (datetime.utcnow() + timedelta(hours=9)).isoformat()
609
  save_log({
 
613
  "passage_id": pid,
614
  "original_level": orig_lev,
615
  "flesch_score": "", # ★列維持
616
+ "reading_order": reading_order, # ★追加
617
  "action_time": now,
618
  "action_type": "prev_pushed",
619
  "page_text": None
 
642
  "passage_id": pid,
643
  "original_level": orig_lev,
644
  "flesch_score": "", # ★列維持
645
+ "reading_order": reading_order, # ★追加
646
  "action_time": now2,
647
  "action_type": f"page_displayed_{new_page+1}",
648
  "page_text": pages[new_page]
 
665
  level = session_state.get("level")
666
  group = session_state.get("group")
667
  used_passages_set = set(session_state.get("used_passages", []))
668
+ reading_order = int(session_state.get("reading_order", 1)) # ★追加
669
 
670
  pages = json.loads(pages_json)
671
  now = (datetime.utcnow() + timedelta(hours=9)).isoformat()
 
677
  "passage_id": pid,
678
  "original_level": orig_lev,
679
  "flesch_score": "", # ★列維持
680
+ "reading_order": reading_order, # ★追加
681
  "action_time": now,
682
  "action_type": action,
683
  "page_text": None
 
721
  next_upd = gr.update(interactive=True, visible=True)
722
  finish_upd = gr.update(interactive=False, visible=False)
723
 
724
+ new_reading_order = reading_order + 1 # ★追加:次の教材なので+1
725
+
726
  now2 = (datetime.utcnow() + timedelta(hours=9)).isoformat()
727
  save_log({
728
  "user_id": user_id,
 
731
  "passage_id": new_pid,
732
  "original_level": new_orig_lev,
733
  "flesch_score": measured_fre, # ★追加
734
+ "reading_order": new_reading_order, # ★追加
735
  "action_time": now2,
736
  "action_type": "page_displayed_1",
737
  "page_text": new_pages[0]
 
741
  "user_id": user_id,
742
  "level": level,
743
  "group": group,
744
+ "used_passages": list(used_passages_set),
745
+ "reading_order": new_reading_order # ★追加
746
  }
747
 
748
  return (
 
918
  with gr.Blocks(css=custom_css) as demo:
919
  gr.Markdown("# 📚 Reading Exercise")
920
 
921
+ session_state = gr.State({"user_id": None, "level": None, "group": 2, "used_passages": [], "reading_order": 0}) # ★追加
922
 
923
  student_id_input = gr.Textbox(label="Student ID")
924