Spaces:
Running
Running
File size: 8,473 Bytes
d95e487 |
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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
import streamlit as st
from streamlit_extras.colored_header import colored_header
def display_header():
"""페이지 상단의 헤더를 표시합니다."""
colored_header(
label="계획서 보고서 작성 AI", # Title updated slightly
description="PDF 서식 및 참고 파일을 업로드하고 지시사항을 입력하면 계획서 또는 보고서를 작성해줍니다.",
color_name="blue-70",
)
def display_file_uploaders():
"""PDF 파일 업로더 위젯들을 표시하고 업로드된 파일 객체들을 반환합니다."""
uploaded_template = st.file_uploader(
"PDF 서식 파일 업로드", type=["pdf"], key="template_uploader"
)
uploaded_reference = st.file_uploader(
"참고 파일 PDF 업로드 (선택 사항)", type=["pdf"], key="reference_uploader"
)
return uploaded_template, uploaded_reference
def display_instructions_input():
"""사용자 지시사항 입력 영역 위젯을 표시하고 입력된 텍스트를 반환합니다."""
instructions = st.text_area(
"작성 지시사항 입력",
placeholder="""예시:
- 이 PDF 템플릿을 사용하여 2025학년도 1-1-1 프로젝트 학습 계획 초안을 작성해주세요. 핵심 목표는 학생 중심 교육 강화입니다. 성취 기준은...
- [참고 파일 PDF] 제출된 교육 활동 계획서 PDF를 참고하여, 계획의 타당성을 분석하고, 개선점을 3가지 제안해주세요.
- 이 프로젝트 학습 계획서 템플릿을 사용하여, '기후 변화와 우리'라는 주제로 5학년 학생 대상의 프로젝트 학습 계획서를 작성해주세요. 탐구 단계를 구체적으로 작성해주세요.
""",
height=200,
key="instructions_input",
)
return instructions
def display_generate_button():
"""'보고서/계획서 생성' 버튼 위젯을 표시하고 클릭 여부를 반환합니다."""
return st.button("보고서/계획서 생성", key="generate_button")
def display_results_area():
"""결과 표시를 위한 컨테이너와 빈 영역(placeholder)을 생성하고 반환합니다."""
container = st.container()
with container:
results_placeholder = st.empty()
return container, results_placeholder # Return both container and placeholder
def update_results_stream(placeholder, current_text):
"""스트리밍 중인 텍스트를 결과 영역에 업데이트합니다."""
placeholder.markdown(
current_text + "▌", unsafe_allow_html=True
) # Add cursor effect
def display_final_result(placeholder, html_content):
"""최종 결과를 HTML 형식으로 결과 영역에 표시합니다."""
placeholder.markdown(html_content, unsafe_allow_html=True)
def display_download_button(title, docx_data):
"""DOCX 다운로드 버튼을 표시합니다. 기존 컨테이너의 내용을 유지합니다."""
# 새 컨테이너를 생성하여 다운로드 버튼만 표시
download_container = st.container()
with download_container:
st.download_button(
label="📄 DOCX로 다운로드",
data=docx_data,
file_name=f"{title}.docx",
# mime="application/docx",
mime="application/vnd.openxmlformats-officedocument.wordprocessingml.document", # 정확한 MIME 타입
key="download_button",
)
def display_error(message):
"""에러 메시지를 표시합니다."""
st.error(message)
def display_warning(message):
"""경고 메시지를 표시합니다."""
st.warning(message)
def display_spinner(message="처리 중..."):
"""스피너(로딩 표시) 컨텍스트를 반환합니다."""
return st.spinner(message)
def display_faq():
with st.expander("❓ 계획서 보고서 작성 AI FAQ"):
st.write(
"""
**Q1. 계획서 보고서 작성 AI는 어떤 기능을 제공하나요?**
A. 이 앱은 학교에서 필요한 다양한 **계획서 및 보고서** 작성을 돕기 위해 개발된 AI 도구입니다. PDF 서식 파일, **참고 파일 PDF (선택 사항)**, 그리고 작성 지시사항을 입력하면, AI가 서식에 맞춰 계획서 또는 보고서 초안을 생성합니다. 사업 계획서, 교육 활동 계획서, 프로젝트 학습 계획서, 각종 보고서 등 다양한 문서 작성을 지원합니다. 생성된 초안은 필요에 따라 수정 및 보완하여 완성할 수 있습니다.
**Q2. 어떤 종류의 계획서 및 보고서 작성을 지원하나요?**
A. 주로 학교 현장에서 사용되는 계획서 및 보고서 작성을 지원합니다. 예시는 다음과 같습니다:
* **사업 계획서:** 학교 발전 계획, 특정 사업 운영 계획 등
* **교육 활동 계획서:** 수업 계획, 방과후학교 운영 계획, 창의적 체험활동 계획 등
* **프로젝트 학습 계획서:** 학생 주도 프로젝트 학습 운영 계획
* **각종 보고서:** 활동 결과 보고서, 사업 결과 보고서, 평가 보고서 등
* (향후 지원 확대 예정)
**Q3. PDF 서식 파일은 어떻게 활용하나요?**
A. **PDF 서식 파일은 계획서 또는 보고서의 템플릿 역할**을 합니다. 기존에 사용하던 서식 파일(.pdf)을 업로드하면, AI가 해당 서식에 맞춰 내용을 채워줍니다. 별도의 서식 파일 없이 백지 상태에서 내용을 생성하고 싶다면, 비어있는 PDF 파일을 업로드하거나, 지시사항에 '자유 형식으로 작성해줘' 와 같이 요청할 수 있습니다.
**Q3-1. 참고 파일 PDF는 어떻게 활용하나요?**
A. **참고 파일 PDF는 AI가 보고서/계획서를 작성할 때 참고할 추가 정보**를 제공합니다. 예를 들어, '참고 파일 PDF를 바탕으로 ~를 분석해주세요' 와 같은 지시사항과 함께 참고 PDF를 업로드하면, AI가 해당 PDF 내용을 분석하여 보고서/계획서 작성에 활용합니다. **참고 파일 PDF는 선택 사항**이며, 필수가 아닙니다.
**Q4. 작성 지시사항은 어떻게 입력해야 하나요?**
A. **구체적이고 명확하게 지시사항을 입력**할수록 AI가 더 정확하게 이해하고 원하는 결과물을 생성할 수 있습니다. 다음과 같은 내용을 포함하여 지시사항을 작성해보세요:
* **작성할 문서의 종류:** (예: 2025학년도 각종 사업 계획서, OOO 프로젝트 보고서, OOO 교육 활동 계획서 초안)
* **주요 내용 및 핵심 목표:** (예: 학생 중심 교육 강화, 창의적 체험활동 활성화, OOO 사업 성과 분석)
* **참고 자료:** (**참고 파일 PDF** 외에 추가적으로 참고할 내용이 있다면 간략하게 언급, **참고 파일 PDF 활용 지시 포함**)
* **특정 양식 요청:** (예: 표 형식으로 작성, 핵심 내용만 요약, 자유 형식으로 작성)
* **분량:** (예: A4 2장 내외로 요약)
**Q5. 계획서/보고서 생성 후 수정은 어떻게 하나요?**
A. 계획서/보고서 생성 후, 하단 출력 내용을 확인하고, 필요한 경우 **텍스트를 선택하여 복사**한 후, 워드프로세서(MS Word, 한글 등)에 붙여넣어 수정할 수 있습니다. 향후 챗봇 기능을 추가하여 앱 내에서 직접 수정하고 추가적인 요청을 할 수 있도록 개선할 예정입니다.
**Q6. PDF 파일 텍스트 추출 오류가 발생할 경우 어떻게 해야 하나요?**
A. PDF 파일이 이미지 형태로 스캔된 경우, 텍스트 추출이 제대로 이루어지지 않을 수 있습니다. 가능하다면 **텍스트 기반 PDF 파일**을 사용하거나, OCR (광학 문자 인식) 기능을 활용하여 텍스트를 추출한 후 다시 시도해보세요. 향후 OCR 기능 내장 또는 PDF 텍스트 추출 성능 향상을 위해 지속적으로 개선할 예정입니다.
**Q7. 지원하는 출력 형식은 무엇인가요?**
A. 현재는 **Markdown 형식**으로 결과를 출력합니다.
* **DOCX 다운로드**버튼으로 Word 문서(.docx)로 다운받을 수 있습니다.
"""
)
|