tkdehf2 commited on
Commit
29b5e9d
Β·
verified Β·
1 Parent(s): 07b71b8

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -0
app.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pytesseract
3
+ from PIL import Image
4
+
5
+ # OCR 및 평가 ν•¨μˆ˜ μ •μ˜
6
+ def evaluate_solution(image):
7
+ """
8
+ 손글씨 이미지λ₯Ό λ°›μ•„ OCR둜 ν…μŠ€νŠΈλ₯Ό μΆ”μΆœν•˜κ³ ,
9
+ 성취기쀀에 따라 평가 및 ν”Όλ“œλ°±μ„ μ œκ³΅ν•˜λŠ” ν•¨μˆ˜.
10
+ """
11
+ # OCR둜 μ΄λ―Έμ§€μ—μ„œ ν…μŠ€νŠΈ μΆ”μΆœ
12
+ extracted_text = pytesseract.image_to_string(image, lang="kor")
13
+
14
+ # 초기 점수 및 ν”Όλ“œλ°± μ„€μ •
15
+ score = 0
16
+ feedback = []
17
+
18
+ # 평가 κΈ°μ€€ μ˜ˆμ‹œ (6ν•™λ…„ μˆ˜ν•™ μ„±μ·¨κΈ°μ€€ 기반)
19
+ if "ν˜Όν•© 계산" in extracted_text:
20
+ feedback.append("ν˜Όν•© 계산 풀이가 ν¬ν•¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€.")
21
+ score += 30
22
+ else:
23
+ feedback.append("ν˜Όν•© 계산 풀이가 λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.")
24
+
25
+ if "μ•½μˆ˜μ™€ 배수" in extracted_text:
26
+ feedback.append("μ•½μˆ˜μ™€ 배수 κ΄€λ ¨ 풀이가 ν¬ν•¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€.")
27
+ score += 30
28
+ else:
29
+ feedback.append("μ•½μˆ˜μ™€ 배수 κ΄€λ ¨ 풀이가 λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.")
30
+
31
+ if "λΆ„μˆ˜μ˜ λ§μ…ˆκ³Ό λΊ„μ…ˆ" in extracted_text or "μ†Œμˆ˜μ˜ κ³±μ…ˆκ³Ό λ‚˜λˆ—μ…ˆ" in extracted_text:
32
+ feedback.append("λΆ„μˆ˜ λ˜λŠ” μ†Œμˆ˜ 연산이 ν¬ν•¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€.")
33
+ score += 40
34
+ else:
35
+ feedback.append("λΆ„μˆ˜ λ˜λŠ” μ†Œμˆ˜ 연산이 λˆ„λ½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.")
36
+
37
+ # κ²°κ³Ό λ°˜ν™˜
38
+ return {
39
+ "μΆ”μΆœλœ ν…μŠ€νŠΈ": extracted_text,
40
+ "점수": score,
41
+ "ν”Όλ“œλ°±": "\n".join(feedback)
42
+ }
43
+
44
+ # Gradio μΈν„°νŽ˜μ΄μŠ€ ꡬ성
45
+ with gr.Blocks() as demo:
46
+ gr.Markdown("# μ΄ˆλ“±ν•™κ΅ 6ν•™λ…„ μˆ˜ν•™ 문제 풀이 평가 μ‹œμŠ€ν…œ")
47
+
48
+ with gr.Row():
49
+ image_input = gr.Image(label="손글씨 이미지 μ—…λ‘œλ“œ", type="pil")
50
+ output_text = gr.Textbox(label="μΆ”μΆœλœ ν…μŠ€νŠΈ")
51
+ output_score = gr.Number(label="점수")
52
+ output_feedback = gr.Textbox(label="ν”Όλ“œλ°±")
53
+
54
+ submit_button = gr.Button("ν‰κ°€ν•˜κΈ°")
55
+ submit_button.click(
56
+ evaluate_solution,
57
+ inputs=image_input,
58
+ outputs=[output_text, output_score, output_feedback]
59
+ )
60
+
61
+ # μ‹€ν–‰
62
+ demo.launch()