Toya0421 commited on
Commit
9fe09fc
·
verified ·
1 Parent(s): fe085ac

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -9
app.py CHANGED
@@ -6,7 +6,7 @@ import os, random, tempfile, json
6
  import re
7
  import threading
8
  import uuid
9
- import csv # ✅ 追加:csv.writer用
10
 
11
  # --- API設定 ---
12
  API_KEY = os.getenv("API_KEY")
@@ -138,9 +138,8 @@ def _parse_choices(raw):
138
  return [s]
139
 
140
  def _format_question_block(question, choices_list):
141
- # choices を A-D に整形して question_display に入れる
142
  labels = ["A", "B", "C", "D"]
143
- # 4つ未満/超過でも崩れにくくする
144
  choices = list(choices_list)[:4]
145
  while len(choices) < 4:
146
  choices.append("")
@@ -151,6 +150,10 @@ def _format_question_block(question, choices_list):
151
  for lab, opt in zip(labels, choices):
152
  opt_s = "" if opt is None else str(opt).strip()
153
  lines.append(f"{lab}. {opt_s}")
 
 
 
 
154
  return "\n".join(lines)
155
 
156
  # --- 自動難易度調整 ---
@@ -253,9 +256,13 @@ def next_step(prev_level, user_answer, question_text, passage_text,
253
  submit_time = datetime.utcnow() + timedelta(hours=9)
254
  state["question_count"] += 1
255
 
256
- # ✅ CSVから読んだ正解(A/B/C/D)と比較(AI採点はしない
257
- correct_answer = (state.get("current_answer") or "").strip().upper()
258
- correct = (str(user_answer).strip().upper() == correct_answer)
 
 
 
 
259
 
260
  new_level = adaptive_test(prev_level, correct)
261
 
@@ -332,7 +339,10 @@ with gr.Blocks() as demo:
332
 
333
  text_display = gr.Textbox(label="Reading Passage", lines=15, interactive=False)
334
  question_display = gr.Textbox(label="Question", lines=6, interactive=False)
335
- user_answer = gr.Radio(["A", "B", "C", "D"], label="Your Answer")
 
 
 
336
  submit_btn = gr.Button("Submit Answer")
337
 
338
  feedback_display = gr.Markdown()
@@ -402,6 +412,5 @@ with gr.Blocks() as demo:
402
  outputs=[dl_file, dl_msg]
403
  )
404
 
405
-
406
- # ✅ 追加:queue(同時アクセス耐性UP)
407
  demo.queue(max_size=64).launch()
 
6
  import re
7
  import threading
8
  import uuid
9
+ import csv # ✅ csv.writer用
10
 
11
  # --- API設定 ---
12
  API_KEY = os.getenv("API_KEY")
 
138
  return [s]
139
 
140
  def _format_question_block(question, choices_list):
141
+ # choices を A-D に整形し、共通選択肢「わからない」を追加(E)
142
  labels = ["A", "B", "C", "D"]
 
143
  choices = list(choices_list)[:4]
144
  while len(choices) < 4:
145
  choices.append("")
 
150
  for lab, opt in zip(labels, choices):
151
  opt_s = "" if opt is None else str(opt).strip()
152
  lines.append(f"{lab}. {opt_s}")
153
+
154
+ # ✅ 共通選択肢を表示にも追加
155
+ lines.append("E. わからない")
156
+
157
  return "\n".join(lines)
158
 
159
  # --- 自動難易度調整 ---
 
256
  submit_time = datetime.utcnow() + timedelta(hours=9)
257
  state["question_count"] += 1
258
 
259
+ # ✅ 「わからない」は例外なく不正解
260
+ if str(user_answer).strip() == "わからない":
261
+ correct = False
262
+ else:
263
+ # ✅ CSVから読んだ正解(A/B/C/D)と比較(AI採点はしない)
264
+ correct_answer = (state.get("current_answer") or "").strip().upper()
265
+ correct = (str(user_answer).strip().upper() == correct_answer)
266
 
267
  new_level = adaptive_test(prev_level, correct)
268
 
 
339
 
340
  text_display = gr.Textbox(label="Reading Passage", lines=15, interactive=False)
341
  question_display = gr.Textbox(label="Question", lines=6, interactive=False)
342
+
343
+ # ✅ 変更:共通選択肢「わからない」を追加
344
+ user_answer = gr.Radio(["A", "B", "C", "D", "わからない"], label="Your Answer")
345
+
346
  submit_btn = gr.Button("Submit Answer")
347
 
348
  feedback_display = gr.Markdown()
 
412
  outputs=[dl_file, dl_msg]
413
  )
414
 
415
+ # ✅ queue(同時アクセス耐性UP)
 
416
  demo.queue(max_size=64).launch()