Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -254,71 +254,144 @@ def main():
|
|
254 |
# st.write("**π ν΄μ€:**", new_question['explanation'])
|
255 |
# else:
|
256 |
# st.error("μ μ¬ λ¬Έμ λ₯Ό μμ±ν μ μμ΅λλ€.")
|
257 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
if st.button(f"π μ μ¬ λ¬Έμ νκΈ° #{i + 1}", key=f"retry_{i}"):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
259 |
with st.spinner("μ μ¬ λ¬Έμ λ₯Ό μμ±νκ³ μμ΅λλ€..."):
|
260 |
-
logger.info(f"Generating similar question for misconception_id: {misconception_id}")
|
261 |
new_question = generate_similar_question(wrong_q, misconception_id, generator)
|
262 |
if new_question:
|
263 |
st.write("### π― μ μ¬ λ¬Έμ ")
|
264 |
st.write(new_question['question'])
|
265 |
|
266 |
-
#
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
|
|
|
|
271 |
|
272 |
-
#
|
273 |
-
if not
|
274 |
-
st.write("**보기:**")
|
275 |
-
col1, col2 = st.columns(2)
|
276 |
with col1:
|
277 |
-
|
278 |
-
st.
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
st.
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
st.session_state[f"similar_question_answered_{i}"] = True
|
287 |
-
if 'C' == new_question['correct']:
|
288 |
-
st.success("β
μ λ΅μ
λλ€!")
|
289 |
-
else:
|
290 |
-
st.error("β νλ Έμ΅λλ€.")
|
291 |
-
st.rerun()
|
292 |
-
|
293 |
with col2:
|
294 |
-
|
295 |
-
st.
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
st.
|
300 |
-
|
301 |
-
|
302 |
-
if st.button(f"D) {new_question['choices']['D']}", key=f"similar_D_{i}"):
|
303 |
-
st.session_state[f"similar_question_answered_{i}"] = True
|
304 |
-
if 'D' == new_question['correct']:
|
305 |
-
st.success("β
μ λ΅μ
λλ€!")
|
306 |
-
else:
|
307 |
-
st.error("β νλ Έμ΅λλ€.")
|
308 |
-
st.rerun()
|
309 |
|
310 |
-
# λ΅λ³ν κ²½μ° κ²°κ³Ό
|
311 |
-
if
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
st.write("---")
|
313 |
st.write("**π ν΄μ€:**", new_question['explanation'])
|
|
|
314 |
# λ€μ νκΈ° λ²νΌ
|
315 |
if st.button("π λ€μ νκΈ°", key=f"reset_{i}"):
|
316 |
st.session_state[f"similar_question_answered_{i}"] = False
|
|
|
317 |
st.rerun()
|
|
|
|
|
|
|
|
|
|
|
318 |
else:
|
319 |
st.error("μ μ¬ λ¬Έμ λ₯Ό μμ±ν μ μμ΅λλ€.")
|
320 |
-
|
321 |
-
|
|
|
322 |
if __name__ == "__main__":
|
323 |
main()
|
324 |
|
|
|
254 |
# st.write("**π ν΄μ€:**", new_question['explanation'])
|
255 |
# else:
|
256 |
# st.error("μ μ¬ λ¬Έμ λ₯Ό μμ±ν μ μμ΅λλ€.")
|
257 |
+
|
258 |
+
# # μ μ¬ λ¬Έμ μμ± λ²νΌ
|
259 |
+
# if st.button(f"π μ μ¬ λ¬Έμ νκΈ° #{i + 1}", key=f"retry_{i}"):
|
260 |
+
# with st.spinner("μ μ¬ λ¬Έμ λ₯Ό μμ±νκ³ μμ΅λλ€..."):
|
261 |
+
# logger.info(f"Generating similar question for misconception_id: {misconception_id}")
|
262 |
+
# new_question = generate_similar_question(wrong_q, misconception_id, generator)
|
263 |
+
# if new_question:
|
264 |
+
# st.write("### π― μ μ¬ λ¬Έμ ")
|
265 |
+
# st.write(new_question['question'])
|
266 |
+
|
267 |
+
# # μ λ΅μ μΈμ
μ€ν
μ΄νΈμ μ μ₯
|
268 |
+
# if f"similar_question_answered_{i}" not in st.session_state:
|
269 |
+
# st.session_state[f"similar_question_answered_{i}"] = False
|
270 |
+
# if f"similar_question_correct_{i}" not in st.session_state:
|
271 |
+
# st.session_state[f"similar_question_correct_{i}"] = new_question['correct']
|
272 |
+
|
273 |
+
# # μμ§ λ΅λ³νμ§ μμ κ²½μ°μλ§ λ³΄κΈ° λ²νΌ νμ
|
274 |
+
# if not st.session_state[f"similar_question_answered_{i}"]:
|
275 |
+
# st.write("**보기:**")
|
276 |
+
# col1, col2 = st.columns(2)
|
277 |
+
# with col1:
|
278 |
+
# if st.button(f"A) {new_question['choices']['A']}", key=f"similar_A_{i}"):
|
279 |
+
# st.session_state[f"similar_question_answered_{i}"] = True
|
280 |
+
# if 'A' == new_question['correct']:
|
281 |
+
# st.success("β
μ λ΅μ
λλ€!")
|
282 |
+
# else:
|
283 |
+
# st.error("β νλ Έμ΅λλ€.")
|
284 |
+
# st.rerun()
|
285 |
+
|
286 |
+
# if st.button(f"C) {new_question['choices']['C']}", key=f"similar_C_{i}"):
|
287 |
+
# st.session_state[f"similar_question_answered_{i}"] = True
|
288 |
+
# if 'C' == new_question['correct']:
|
289 |
+
# st.success("β
μ λ΅μ
λλ€!")
|
290 |
+
# else:
|
291 |
+
# st.error("β νλ Έμ΅λλ€.")
|
292 |
+
# st.rerun()
|
293 |
+
|
294 |
+
# with col2:
|
295 |
+
# if st.button(f"B) {new_question['choices']['B']}", key=f"similar_B_{i}"):
|
296 |
+
# st.session_state[f"similar_question_answered_{i}"] = True
|
297 |
+
# if 'B' == new_question['correct']:
|
298 |
+
# st.success("β
μ λ΅μ
λλ€!")
|
299 |
+
# else:
|
300 |
+
# st.error("β νλ Έμ΅λλ€.")
|
301 |
+
# st.rerun()
|
302 |
+
|
303 |
+
# if st.button(f"D) {new_question['choices']['D']}", key=f"similar_D_{i}"):
|
304 |
+
# st.session_state[f"similar_question_answered_{i}"] = True
|
305 |
+
# if 'D' == new_question['correct']:
|
306 |
+
# st.success("β
μ λ΅μ
λλ€!")
|
307 |
+
# else:
|
308 |
+
# st.error("β νλ Έμ΅λλ€.")
|
309 |
+
# st.rerun()
|
310 |
+
|
311 |
+
# # λ΅λ³ν κ²½μ° κ²°κ³Ό λ° ν΄μ€ νμ
|
312 |
+
# if st.session_state[f"similar_question_answered_{i}"]:
|
313 |
+
# st.write("---")
|
314 |
+
# st.write("**π ν΄μ€:**", new_question['explanation'])
|
315 |
+
# # λ€μ νκΈ° λ²νΌ
|
316 |
+
# if st.button("π λ€μ νκΈ°", key=f"reset_{i}"):
|
317 |
+
# st.session_state[f"similar_question_answered_{i}"] = False
|
318 |
+
# st.rerun()
|
319 |
+
# else:
|
320 |
+
# st.error("μ μ¬ λ¬Έμ λ₯Ό μμ±ν μ μμ΅λλ€.")
|
321 |
+
|
322 |
+
# νλ¦° λ¬Έμ λΆμ λΆλΆμμ
|
323 |
if st.button(f"π μ μ¬ λ¬Έμ νκΈ° #{i + 1}", key=f"retry_{i}"):
|
324 |
+
# μ μ¬ λ¬Έμ μμ± μνλ₯Ό μΈμ
μ μ μ₯
|
325 |
+
st.session_state[f"show_similar_question_{i}"] = True
|
326 |
+
st.session_state[f"similar_question_answered_{i}"] = False
|
327 |
+
# κΈ°μ‘΄ λ΅λ³ κΈ°λ‘ μ΄κΈ°ν
|
328 |
+
st.rerun()
|
329 |
+
|
330 |
+
# μ μ¬ λ¬Έμ κ° μμ±λ μνμΈ κ²½μ°
|
331 |
+
if st.session_state.get(f"show_similar_question_{i}", False):
|
332 |
with st.spinner("μ μ¬ λ¬Έμ λ₯Ό μμ±νκ³ μμ΅λλ€..."):
|
|
|
333 |
new_question = generate_similar_question(wrong_q, misconception_id, generator)
|
334 |
if new_question:
|
335 |
st.write("### π― μ μ¬ λ¬Έμ ")
|
336 |
st.write(new_question['question'])
|
337 |
|
338 |
+
# λ΅λ³ μν νμΈ
|
339 |
+
answered = st.session_state.get(f"similar_question_answered_{i}", False)
|
340 |
+
selected_answer = st.session_state.get(f"selected_answer_{i}", None)
|
341 |
+
|
342 |
+
# 보기 νμ
|
343 |
+
st.write("**보기:**")
|
344 |
+
col1, col2 = st.columns(2)
|
345 |
|
346 |
+
# λ΅λ³νμ§ μμ κ²½μ°μλ§ λ²νΌ νμ±ν
|
347 |
+
if not answered:
|
|
|
|
|
348 |
with col1:
|
349 |
+
for option in ['A', 'C']:
|
350 |
+
if st.button(
|
351 |
+
f"{option}) {new_question['choices'][option]}",
|
352 |
+
key=f"similar_{option}_{i}"
|
353 |
+
):
|
354 |
+
st.session_state[f"similar_question_answered_{i}"] = True
|
355 |
+
st.session_state[f"selected_answer_{i}"] = option
|
356 |
+
st.rerun()
|
357 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
358 |
with col2:
|
359 |
+
for option in ['B', 'D']:
|
360 |
+
if st.button(
|
361 |
+
f"{option}) {new_question['choices'][option]}",
|
362 |
+
key=f"similar_{option}_{i}"
|
363 |
+
):
|
364 |
+
st.session_state[f"similar_question_answered_{i}"] = True
|
365 |
+
st.session_state[f"selected_answer_{i}"] = option
|
366 |
+
st.rerun()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
367 |
|
368 |
+
# λ΅λ³ν κ²½μ° κ²°κ³Ό νμ
|
369 |
+
if answered:
|
370 |
+
selected = st.session_state[f"selected_answer_{i}"]
|
371 |
+
if selected == new_question['correct']:
|
372 |
+
st.success("β
μ λ΅μ
λλ€!")
|
373 |
+
else:
|
374 |
+
st.error(f"β νλ Έμ΅λλ€. μ λ΅μ {new_question['correct']}μ
λλ€.")
|
375 |
+
|
376 |
+
# ν΄μ€ νμ
|
377 |
st.write("---")
|
378 |
st.write("**π ν΄μ€:**", new_question['explanation'])
|
379 |
+
|
380 |
# λ€μ νκΈ° λ²νΌ
|
381 |
if st.button("π λ€μ νκΈ°", key=f"reset_{i}"):
|
382 |
st.session_state[f"similar_question_answered_{i}"] = False
|
383 |
+
st.session_state[f"selected_answer_{i}"] = None
|
384 |
st.rerun()
|
385 |
+
|
386 |
+
# λ¬Έμ λ«κΈ° λ²νΌ
|
387 |
+
if st.button("β λ¬Έμ λ«κΈ°", key=f"close_{i}"):
|
388 |
+
st.session_state[f"show_similar_question_{i}"] = False
|
389 |
+
st.rerun()
|
390 |
else:
|
391 |
st.error("μ μ¬ λ¬Έμ λ₯Ό μμ±ν μ μμ΅λλ€.")
|
392 |
+
if st.button("β λ«κΈ°", key=f"close_error_{i}"):
|
393 |
+
st.session_state[f"show_similar_question_{i}"] = False
|
394 |
+
st.rerun()
|
395 |
if __name__ == "__main__":
|
396 |
main()
|
397 |
|