File size: 2,928 Bytes
ba14e42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import streamlit as st
import tempfile
import os

def main():
    st.title("ν•™κ΅μƒν™œκΈ°λ‘λΆ€ OCR 처리")

    uploaded_file = st.file_uploader("PDF νŒŒμΌμ„ μ—…λ‘œλ“œν•˜μ„Έμš”", type="pdf")

    if uploaded_file is not None:
        # λ²„νŠΌμ„ st.empty()둜 μƒμ„±ν•˜μ—¬ λ‚˜μ€‘μ— μ—…λ°μ΄νŠΈν•  수 있게 ν•©λ‹ˆλ‹€.
        button_placeholder = st.empty()
        execute_button = button_placeholder.button("μ‹€ν–‰ν•˜κΈ°")

        if execute_button:
            # λ²„νŠΌμ„ λΉ„ν™œμ„±ν™”ν•˜κ³  λ‘œλ”© λ©”μ‹œμ§€λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.
            button_placeholder.empty()
            with st.spinner('OCR 처리 쀑...'):
                # μž„μ‹œ 파일둜 μ €μž₯
                with tempfile.NamedTemporaryFile(delete=False, suffix='.pdf') as tmp_file:
                    tmp_file.write(uploaded_file.getvalue())
                    tmp_file_path = tmp_file.name

                # OCR 처리
                from watch import ocr_process
                result = ocr_process(tmp_file_path)

                # μž„μ‹œ 파일 μ‚­μ œ
                os.unlink(tmp_file_path)

            # κ²°κ³Ό ν‘œμ‹œ
            st.header("창의적 μ²΄ν—˜ν™œλ™μƒν™©")
            for grade in set(item.grade for item in result.creativeExperientialActivities):
                st.subheader(f"{grade}ν•™λ…„")
                activities = [item for item in result.creativeExperientialActivities if item.grade == grade]
                for activity in activities:
                    activity_type = {"AUTONOMOUS": "μžμœ¨ν™œλ™", "CLUB": "λ™μ•„λ¦¬ν™œλ™", "CAREER": "μ§„λ‘œν™œλ™"}[activity.activityType]
                    st.write(f"**{activity_type}**")
                    st.write(f"μ‹œκ°„: {activity.hours}")
                    st.write(f"νŠΉκΈ°μ‚¬ν•­: {activity.specialNotes}")
                    if activity.areaOfInterest:
                        st.write(f"희망뢄야: {activity.areaOfInterest}")
                    st.write("---")

            st.header("κ΅κ³Όν•™μŠ΅λ°œλ‹¬μƒν™©-μ„ΈλΆ€λŠ₯λ ₯λ°νŠΉκΈ°μ‚¬ν•­")
            for grade in set(item.grade for item in result.academicAchievement):
                st.subheader(f"{grade}ν•™λ…„")
                for semester in set(item.semester for item in result.academicAchievement if item.grade == grade):
                    st.write(f"**{semester}ν•™κΈ°**")
                    subjects = [item for item in result.academicAchievement if
                                item.grade == grade and item.semester == semester]
                    for subject in subjects:
                        st.write(f"κ³Όλͺ©: {subject.subject} ({subject.course})")
                        st.write(f"μ„ΈλΆ€λŠ₯λ ₯ 및 νŠΉκΈ°μ‚¬ν•­: {subject.detailedAbilities}")
                    st.write("---")

            # μ²˜λ¦¬κ°€ μ™„λ£Œλ˜λ©΄ λ²„νŠΌμ„ λ‹€μ‹œ ν™œμ„±ν™”ν•©λ‹ˆλ‹€.
            button_placeholder.button("μ‹€ν–‰ν•˜κΈ°", key="rerun_button")

if __name__ == "__main__":
    main()