Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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,8 +138,9 @@ def _parse_choices(raw):
|
|
| 138 |
return [s]
|
| 139 |
|
| 140 |
def _format_question_block(question, choices_list):
|
| 141 |
-
#
|
| 142 |
labels = ["A", "B", "C", "D"]
|
|
|
|
| 143 |
choices = list(choices_list)[:4]
|
| 144 |
while len(choices) < 4:
|
| 145 |
choices.append("")
|
|
@@ -150,10 +151,6 @@ def _format_question_block(question, choices_list):
|
|
| 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,7 +253,7 @@ def next_step(prev_level, user_answer, question_text, passage_text,
|
|
| 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:
|
|
@@ -340,7 +337,7 @@ with gr.Blocks() as demo:
|
|
| 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")
|
|
@@ -412,5 +409,5 @@ with gr.Blocks() as demo:
|
|
| 412 |
outputs=[dl_file, dl_msg]
|
| 413 |
)
|
| 414 |
|
| 415 |
-
# ✅ queue(同時アクセス耐性UP)
|
| 416 |
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 に整形して 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 |
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 |
submit_time = datetime.utcnow() + timedelta(hours=9)
|
| 254 |
state["question_count"] += 1
|
| 255 |
|
| 256 |
+
# ✅ 変更点①:「わからない」は例外なく不正解
|
| 257 |
if str(user_answer).strip() == "わからない":
|
| 258 |
correct = False
|
| 259 |
else:
|
|
|
|
| 337 |
text_display = gr.Textbox(label="Reading Passage", lines=15, interactive=False)
|
| 338 |
question_display = gr.Textbox(label="Question", lines=6, interactive=False)
|
| 339 |
|
| 340 |
+
# ✅ 変更点②:共通選択肢「わからない」を追加(ログ列は触らない)
|
| 341 |
user_answer = gr.Radio(["A", "B", "C", "D", "わからない"], label="Your Answer")
|
| 342 |
|
| 343 |
submit_btn = gr.Button("Submit Answer")
|
|
|
|
| 409 |
outputs=[dl_file, dl_msg]
|
| 410 |
)
|
| 411 |
|
| 412 |
+
# ✅ 追加:queue(同時アクセス耐性UP)
|
| 413 |
demo.queue(max_size=64).launch()
|