record-ocr / app.py
jehyn923's picture
Upload 5 files
ba14e42 verified
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()