Jintonic92 commited on
Commit
fec1647
Β·
verified Β·
1 Parent(s): 41ddd8a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +119 -46
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
- if f"similar_question_answered_{i}" not in st.session_state:
268
- st.session_state[f"similar_question_answered_{i}"] = False
269
- if f"similar_question_correct_{i}" not in st.session_state:
270
- st.session_state[f"similar_question_correct_{i}"] = new_question['correct']
 
 
271
 
272
- # 아직 λ‹΅λ³€ν•˜μ§€ μ•Šμ€ κ²½μš°μ—λ§Œ 보기 λ²„νŠΌ ν‘œμ‹œ
273
- if not st.session_state[f"similar_question_answered_{i}"]:
274
- st.write("**보기:**")
275
- col1, col2 = st.columns(2)
276
  with col1:
277
- if st.button(f"A) {new_question['choices']['A']}", key=f"similar_A_{i}"):
278
- st.session_state[f"similar_question_answered_{i}"] = True
279
- if 'A' == new_question['correct']:
280
- st.success("βœ… μ •λ‹΅μž…λ‹ˆλ‹€!")
281
- else:
282
- st.error("❌ ν‹€λ ΈμŠ΅λ‹ˆλ‹€.")
283
- st.rerun()
284
-
285
- if st.button(f"C) {new_question['choices']['C']}", key=f"similar_C_{i}"):
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
- if st.button(f"B) {new_question['choices']['B']}", key=f"similar_B_{i}"):
295
- st.session_state[f"similar_question_answered_{i}"] = True
296
- if 'B' == new_question['correct']:
297
- st.success("βœ… μ •λ‹΅μž…λ‹ˆλ‹€!")
298
- else:
299
- st.error("❌ ν‹€λ ΈμŠ΅λ‹ˆλ‹€.")
300
- st.rerun()
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 st.session_state[f"similar_question_answered_{i}"]:
 
 
 
 
 
 
 
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