JUNGU's picture
Update app.py
768f592
raw
history blame
12.5 kB
import streamlit as st
import openai
import json
from annotated_text import annotated_text
import os
# OpenAI API μ„€μ • (ν™˜κ²½ λ³€μˆ˜μ—μ„œ μ½μ–΄μ˜΄)
openai.api_key = os.getenv("OPENAI_API_KEY")
#gptμ΄μš©ν•΄μ„œ μΆ”λ‘ ν•¨μˆ˜ λ§Œλ“€κΈ°
def generate_annotated_text(text):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo-16k",
messages=[
{
"role": "system",
"content": "μ„±μ·¨κΈ°μ€€ 기반 ν•™μƒμ˜ νŠΉμ„± 및 ν™œλ™ 평가 생성\n성취기쀀을 μž…λ ₯ν•˜μ‹œλ©΄, ν•΄λ‹Ή 성취기쀀에 κΈ°λ°˜ν•œ ν•™μƒμ˜ νŠΉμ„± 및 ν™œλ™μ— λŒ€ν•œ 평가λ₯Ό annotated_text ν˜•μ‹μœΌλ‘œ μ œκ³΅ν•©λ‹ˆλ‹€. 성취기쀀을 보며 ν•™μƒμ˜ νŠΉμ • ν™œλ™, μ„±μ·¨ μˆ˜μ€€, κ΅μ‚¬μ˜ 총평, 그리고 ν•™μƒμ˜ μ—­λŸ‰μ„ κ³ λ €ν•˜μ—¬ μ²΄κ³„μ μœΌλ‘œ κ΅¬μ„±λœ 좜λ ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. μ£Όμ–΄λŠ” λ°˜λ“œμ‹œ μƒλž΅ν•©λ‹ˆλ‹€. \n\n예제:\nμž…λ ₯: ```μ„±μ·¨κΈ°μ€€: [6κ΅­01-07]μƒλŒ€κ°€ μ²˜ν•œ 상황을 μ΄ν•΄ν•˜κ³  κ³΅κ°ν•˜λ©° λ“£λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€, [6κ΅­01-02] μ˜κ²¬μ„ μ œμ‹œν•˜κ³  ν•¨κ»˜ μ‘°μ •ν•˜λ©° ν† μ˜ν•œλ‹€.```\n좜λ ₯: ```annotated_text(\n (\"ν‰μ†Œ μžμ‹ μ˜ 생각을 일λͺ©μš”μ—°ν•˜κ²Œ μ •λ¦¬ν•˜λŠ” μŠ΅κ΄€μ΄ 있음.\", \"μ—­λŸ‰\", \"rgba(255, 0, 0, 0.3)\"),\n (\"μ‚¬νšŒ ν˜„μ•ˆμ— κ΄€ν•œ μ£Όμž₯ν•˜λŠ” κΈ€μ“°κΈ°λ₯Ό μž˜ν•¨.\", \"μ„±μ·¨μˆ˜μ€€\", \"rgba(0, 0, 255, 0.3)\"),\n (\"친ꡬ의 고민을 ν•΄κ²°ν•΄μ£ΌλŠ” μ—­ν• κ·Ήμ—μ„œ μƒλŒ€λ°©μ„ λ°°λ €ν•˜μ—¬ ν•΄κ²° κ°€λŠ₯ν•œ λ°©μ•ˆμ„ μ œμ•ˆν•¨.\", \"μˆ˜ν–‰\", \"rgba(0, 128, 0, 0.3)\"),\n (\"μƒλŒ€κ°€ μ²˜ν•œ 상황을 μ΄ν•΄ν•˜κ³  κ³΅κ°ν•˜λŠ” νƒœλ„λ₯Ό 가지고 μΉœκ΅¬λ“€κ³Ό μ›λ§Œν•œ 관계λ₯Ό λ§Ίκ³  κ°ˆλ“±μ„ 쑰정함.\", \"ꡐ사총평\", \"rgba(128, 128, 128, 0.3)\"),\n (\"쀑간 놀이 μ‹œκ°„μ— μš΄λ™μž₯을 μ‚¬μš©ν•˜λŠ” 방법 μ •ν•˜κΈ°λ₯Ό 주제둜 ν•œ ν† μ˜μ—μ„œ μ•Œλ§žμ€ 근거와 λ’·λ°›μΉ¨ν•  수 μžˆλŠ” 자료λ₯Ό ν† λŒ€λ‘œ μžμ‹ μ˜ μ˜κ²¬μ„ νƒ€λ‹Ήν•˜κ²Œ μ œμ‹œν•˜λ©΄μ„œ λ‹€λ₯Έ μ‚¬λžŒμ˜ μ˜κ²¬μ„ λŠ₯λ™μ μœΌλ‘œ μˆ˜μš©ν•˜κ³  효과적으둜 μ˜κ²¬μ„ μ‘°μ •ν•˜λŠ” λŠ₯λ ₯을 λ³΄μž„.\", \"μˆ˜ν–‰\", \"rgba(0, 128, 0, 0.3)\"),\n (\"μƒλŒ€μ˜ μ˜κ²¬μ„ μ‘΄μ€‘ν•˜κ³  ν˜‘λ ₯ν•˜λŠ” νƒœλ„λ₯Ό λ³΄μž„.\", \"μ—­λŸ‰\", \"rgba(255, 0, 0, 0.3)\")\n)\n```"
},
{
"role": "user",
"content": "[6κ΅­01-02]μ˜κ²¬μ„ μ œμ‹œν•˜κ³  ν•¨κ»˜ μ‘°μ •ν•˜λ©° ν† μ˜ν•œλ‹€."
},
{
"role": "assistant",
"content": "```annotated_text(\n (\"ν† λ‘ μ΄λ‚˜ ν† μ˜ ν™œλ™μ— 적극적으둜 μ°Έμ—¬ν•˜λ©° μžμ‹ μ˜ μ˜κ²¬μ„ λ…Όλ¦¬μ μœΌλ‘œ 잘 μ œμ‹œν•¨.\", \"μ„±μ·¨μˆ˜μ€€\", \"rgba(0, 0, 255, 0.3)\"),\n (\"νŒ€ ν”„λ‘œμ νŠΈμ—μ„œ λ‹€λ₯Έ νŒ€μ›λ“€μ˜ μ˜κ²¬μ„ μ‘΄μ€‘ν•˜κ³  κ³΅λ™μ˜ λͺ©ν‘œλ₯Ό μœ„ν•΄ μ˜κ²¬μ„ 잘 μ‘°μ •ν•˜λŠ” λŠ₯λ ₯을 보여 μ£Όμ—ˆμŒ.\", \"μˆ˜ν–‰\", \"rgba(0, 128, 0, 0.3)\"),\n (\"μžμ‹ μ˜ 생각과 μ˜κ²¬μ„ 효과적으둜 λΆ„λͺ…ν•˜κ²Œ ν‘œν˜„ν•˜λŠ”λ° 어렀움이 μ—†λŠ” κ²ƒμœΌλ‘œ λ³΄μž„.\", \"μ—­λŸ‰\", \"rgba(255, 0, 0, 0.3)\"),\n (\"학생은 μ„ μ˜μ˜ μΆ©λŒμ„ 톡해 μ„±μž₯ν•˜κ³  있으며, 이λ₯Ό 톡해 배렀와 ν˜‘λ ₯에 λŒ€ν•œ μ€‘μš”μ„±μ„ μΈμ§€ν•˜κ³  있음.\", \"ꡐ사총평\", \"rgba(128, 128, 128, 0.3)\")\n)\n```"
}
],
temperature=1,
max_tokens=4308,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
return response['choices'][0]['message']['content']
# Streamlit μ•±μ˜ 제λͺ© 및 μ„€λͺ…
st.title("μ„±μ·¨κΈ°μ€€ 기반 ν•™μƒμ˜ νŠΉμ„± 및 ν™œλ™ 평가 생성")
st.write("성취기쀀을 μž…λ ₯ν•˜μ‹œλ©΄, ν•΄λ‹Ή 성취기쀀에 κΈ°λ°˜ν•œ ν•™μƒμ˜ νŠΉμ„± 및 ν™œλ™μ— λŒ€ν•œ 평가λ₯Ό \n\n [학생 ν™œλ™, μ„±μ·¨ μˆ˜μ€€, κ΅μ‚¬μ˜ 총평, 학생 μ—­λŸ‰] 4가지 μš”μ†Œλ₯Ό μ‘°ν•©ν•˜μ—¬ μ œκ³΅ν•©λ‹ˆλ‹€.")
achievement_standards = {
"1~2ν•™λ…„κ΅°": [
"[2κ΅­01-01] 상황에 μ–΄μšΈλ¦¬λŠ” 인사말을 μ£Όκ³ λ°›λŠ”λ‹€.",
"[2κ΅­01-02] 일이 μΌμ–΄λ‚œ μˆœμ„œλ₯Ό κ³ λ €ν•˜λ©° λ“£κ³  λ§ν•œλ‹€.",
"[2κ΅­01-01] 상황에 μ–΄μšΈλ¦¬λŠ” 인사말을 μ£Όκ³ λ°›λŠ”λ‹€.",
"[2κ΅­01-02] 일이 μΌμ–΄λ‚œ μˆœμ„œλ₯Ό κ³ λ €ν•˜λ©° λ“£κ³  λ§ν•œλ‹€.",
"[2κ΅­01-03] μžμ‹ μ˜ 감정을 ν‘œν˜„ν•˜λ©° λŒ€ν™”λ₯Ό λ‚˜λˆˆλ‹€.",
"[2κ΅­01-04] λ“£λŠ” 이λ₯Ό 바라보며 λ°”λ₯Έ μžμ„Έλ‘œ μžμ‹  있게 λ§ν•œλ‹€.",
"[2κ΅­01-05] λ§ν•˜λŠ” 이와 말의 λ‚΄μš©μ— μ§‘μ€‘ν•˜λ©° λ“£λŠ”λ‹€.",
"[2κ΅­01-06] λ°”λ₯΄κ³  고운 말을 μ‚¬μš©ν•˜μ—¬ λ§ν•˜λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[2κ΅­02-01] κΈ€μž, 낱말, λ¬Έμž₯을 μ†Œλ¦¬ λ‚΄μ–΄ μ½λŠ”λ‹€.",
"[2κ΅­02-02] λ¬Έμž₯κ³Ό 글을 μ•Œλ§žκ²Œ 띄어 μ½λŠ”λ‹€.",
"[2κ΅­02-03] 글을 읽고 μ£Όμš” λ‚΄μš©μ„ ν™•μΈν•œλ‹€.",
"[2κ΅­02-04] 글을 읽고 인물의 μ²˜μ§€μ™€ λ§ˆμŒμ„ μ§μž‘ν•œλ‹€.",
"[2κ΅­02-05] 읽기에 ν₯λ―Έλ₯Ό 가지고 즐겨 μ½λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[2κ΅­03-01] κΈ€μžλ₯Ό λ°”λ₯΄κ²Œ μ“΄λ‹€.",
"[2κ΅­03-02] μžμ‹ μ˜ 생각을 λ¬Έμž₯으둜 ν‘œν˜„ν•œλ‹€.",
"[2κ΅­03-03] μ£Όλ³€μ˜ μ‚¬λžŒμ΄λ‚˜ 사물에 λŒ€ν•΄ 짧은 글을 μ“΄λ‹€.",
"[2κ΅­03-04] 인상 κΉŠμ—ˆλ˜ μΌμ΄λ‚˜ κ²ͺ은 일에 λŒ€ν•œ μƒκ°μ΄λ‚˜ λŠλ‚Œμ„ μ“΄λ‹€.",
"[2κ΅­03-05] 쓰기에 ν₯λ―Έλ₯Ό 가지고 즐겨 μ“°λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[2κ΅­04-01] ν•œκΈ€ 자λͺ¨μ˜ 이름과 μ†Œλ¦Ώκ°’μ„ μ•Œκ³  μ •ν™•ν•˜κ²Œ λ°œμŒν•˜κ³  μ“΄λ‹€.",
"[2κ΅­04-02] μ†Œλ¦¬μ™€ ν‘œκΈ°κ°€ λ‹€λ₯Ό 수 μžˆμŒμ„ μ•Œκ³  낱말을 λ°”λ₯΄κ²Œ 읽고 μ“΄λ‹€.",
"[2κ΅­04-03] λ¬Έμž₯에 따라 μ•Œλ§žμ€ λ¬Έμž₯ λΆ€ν˜Έλ₯Ό μ‚¬μš©ν•œλ‹€.",
"[2κ΅­04-04] κΈ€μž, 낱말, λ¬Έμž₯을 관심 있게 μ‚΄νŽ΄λ³΄κ³  ν₯λ―Έλ₯Ό 가진닀.",
"[2κ΅­05-01] λŠλ‚Œκ³Ό λΆ„μœ„κΈ°λ₯Ό μ‚΄λ € κ·Έλ¦Όμ±…, μ‹œλ‚˜ λ…Έλž˜, 짧은 이야기λ₯Ό λ“€λ €μ£Όκ±°λ‚˜ λ“£λŠ”λ‹€.",
"[2κ΅­05-02] 인물의 λͺ¨μŠ΅, 행동, λ§ˆμŒμ„ μƒμƒν•˜λ©° κ·Έλ¦Όμ±…, μ‹œλ‚˜ λ…Έλž˜, 이야기λ₯Ό κ°μƒν•œλ‹€.",
"[2κ΅­05-03] μ—¬λŸ¬ 가지 말놀이λ₯Ό 톡해 말의 재미λ₯Ό λŠλ‚€λ‹€.",
"[2κ΅­05-04] μžμ‹ μ˜ μƒκ°μ΄λ‚˜ κ²ͺ은 일을 μ‹œλ‚˜ λ…Έλž˜, 이야기 λ“±μœΌλ‘œ ν‘œν˜„ν•œλ‹€.",
"[2κ΅­05-05] μ‹œλ‚˜ λ…Έλž˜, 이야기에 ν₯λ―Έλ₯Ό 가진닀.",
],
"3~4ν•™λ…„κ΅°": [
"[4κ΅­01-01] λŒ€ν™”μ˜ 즐거움을 μ•Œκ³  λŒ€ν™”λ₯Ό λ‚˜λˆˆλ‹€.",
"[4κ΅­01-02] νšŒμ˜μ—μ„œ μ˜κ²¬μ„ 적극적으둜 κ΅ν™˜ν•œλ‹€.",
"[4κ΅­01-03] 원인과 결과의 관계λ₯Ό κ³ λ €ν•˜λ©° λ“£κ³  λ§ν•œλ‹€.",
"[4κ΅­01-04] μ μ ˆν•œ ν‘œμ •, λͺΈμ§“, 말투둜 λ§ν•œλ‹€.",
"[4κ΅­01-05] λ‚΄μš©μ„ μš”μ•½ν•˜λ©° λ“£λŠ”λ‹€.",
"[4κ΅­01-06] 예의λ₯Ό 지킀며 λ“£κ³  λ§ν•˜λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[4κ΅­02-01] 문단과 κΈ€μ˜ 쀑심 생각을 νŒŒμ•…ν•œλ‹€.",
"[4κ΅­02-02] κΈ€μ˜ μœ ν˜•μ„ κ³ λ €ν•˜μ—¬ λŒ€κ°•μ˜ λ‚΄μš©μ„ κ°„μΆ”λ¦°λ‹€.",
"[4κ΅­02-03] κΈ€μ—μ„œ λ‚±λ§μ˜ μ˜λ―Έλ‚˜ μƒλž΅λœ λ‚΄μš©μ„ μ§μž‘ν•œλ‹€.",
"[4κ΅­02-04] 글을 읽고 사싀과 μ˜κ²¬μ„ κ΅¬λ³„ν•œλ‹€.",
"[4κ΅­02-05] 읽기 κ²½ν—˜κ³Ό λŠλ‚Œμ„ λ‹€λ₯Έ μ‚¬λžŒκ³Ό λ‚˜λˆ„λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[4κ΅­03-01] 쀑심 λ¬Έμž₯κ³Ό λ’·λ°›μΉ¨ λ¬Έμž₯을 κ°–μΆ”μ–΄ 문단을 μ“΄λ‹€.",
"[4κ΅­03-02] μ‹œκ°„μ˜ 흐름에 따라 μ‚¬κ±΄μ΄λ‚˜ 행동이 λ“œλŸ¬λ‚˜κ²Œ 글을 μ“΄λ‹€.",
"[4κ΅­03-03] 관심 μžˆλŠ” μ£Όμ œμ— λŒ€ν•΄ μžμ‹ μ˜ 의견이 λ“œλŸ¬λ‚˜κ²Œ 글을 μ“΄λ‹€.",
"[4κ΅­03-04] μ½λŠ” 이λ₯Ό κ³ λ €ν•˜λ©° μžμ‹ μ˜ λ§ˆμŒμ„ ν‘œν˜„ν•˜λŠ” 글을 μ“΄λ‹€.",
"[4κ΅­03-05] 쓰기에 μžμ‹ κ°μ„ κ°–κ³  μžμ‹ μ˜ 글을 적극적으둜 λ‚˜λˆ„λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[4κ΅­04-01] 낱말을 λΆ„λ₯˜ν•˜κ³  κ΅­μ–΄μ‚¬μ „μ—μ„œ μ°ΎλŠ”λ‹€.",
"[4κ΅­04-02] 낱말과 λ‚±λ§μ˜ 의미 관계λ₯Ό νŒŒμ•…ν•œλ‹€.",
"[4κ΅­04-03] 기본적인 λ¬Έμž₯의 μ§œμž„μ„ μ΄ν•΄ν•˜κ³  μ‚¬μš©ν•œλ‹€.",
"[4κ΅­04-04] λ†’μž„λ²•μ„ μ•Œκ³  μ–Έμ–΄ μ˜ˆμ ˆμ— 맞게 μ‚¬μš©ν•œλ‹€.",
"[4κ΅­04-05] ν•œκΈ€μ„ μ†Œμ€‘νžˆ μ—¬κΈ°λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[4κ΅­05-01] μ‹œκ°μ΄λ‚˜ 청각 λ“± 감각적 ν‘œν˜„μ— μ£Όλͺ©ν•˜λ©° μž‘ν’ˆμ„ κ°μƒν•œλ‹€.",
"[4κ΅­05-02] 인물, 사건, 배경에 μ£Όλͺ©ν•˜λ©° μž‘ν’ˆμ„ μ΄ν•΄ν•œλ‹€.",
"[4κ΅­05-03] μ΄μ•ΌκΈ°μ˜ 흐름을 νŒŒμ•…ν•˜μ—¬ μ΄μ–΄μ§ˆ λ‚΄μš©μ„ μƒμƒν•˜κ³  ν‘œν˜„ν•œλ‹€.",
"[4κ΅­05-04] μž‘ν’ˆμ„ λ“£κ±°λ‚˜ μ½κ±°λ‚˜ 보고 λ– μ˜€λ₯Έ λŠλ‚Œκ³Ό 생각을 λ‹€μ–‘ν•˜κ²Œ ν‘œν˜„ν•œλ‹€.",
"[4κ΅­05-05] μž¬λ―Έλ‚˜ 감동을 느끼며 μž‘ν’ˆμ„ 즐겨 κ°μƒν•˜λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
],
"5~6ν•™λ…„κ΅°": [
"[6κ΅­01-01] ꡬ어 μ˜μ‚¬μ†Œν†΅μ˜ νŠΉμ„±μ„ λ°”νƒ•μœΌλ‘œ ν•˜μ—¬ λ“£κΈ°β€€λ§ν•˜κΈ° ν™œλ™μ„ ν•œλ‹€.",
"[6κ΅­01-02] μ˜κ²¬μ„ μ œμ‹œν•˜κ³  ν•¨κ»˜ μ‘°μ •ν•˜λ©° ν† μ˜ν•œλ‹€.",
"[6κ΅­01-03] μ ˆμ°¨μ™€ κ·œμΉ™μ„ 지킀고 κ·Όκ±°λ₯Ό μ œμ‹œν•˜λ©° ν† λ‘ ν•œλ‹€.",
"[6κ΅­01-04] 자료λ₯Ό μ •λ¦¬ν•˜μ—¬ 말할 λ‚΄μš©μ„ μ²΄κ³„μ μœΌλ‘œ κ΅¬μ„±ν•œλ‹€.",
"[6κ΅­01-05] 맀체 자료λ₯Ό ν™œμš©ν•˜μ—¬ λ‚΄μš©μ„ 효과적으둜 λ°œν‘œν•œλ‹€.",
"[6κ΅­01-06] λ“œλŸ¬λ‚˜μ§€ μ•Šκ±°λ‚˜ μƒλž΅λœ λ‚΄μš©μ„ μΆ”λ‘ ν•˜λ©° λ“£λŠ”λ‹€.",
"[6κ΅­01-07] μƒλŒ€κ°€ μ²˜ν•œ 상황을 μ΄ν•΄ν•˜κ³  κ³΅κ°ν•˜λ©° λ“£λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[6κ΅­02-01] μ½κΈ°λŠ” 배경지식을 ν™œμš©ν•˜μ—¬ 의미λ₯Ό κ΅¬μ„±ν•˜λŠ” κ³Όμ •μž„μ„ μ΄ν•΄ν•˜κ³  글을 μ½λŠ”λ‹€.",
"[6κ΅­02-02] κΈ€μ˜ ꡬ쑰λ₯Ό κ³ λ €ν•˜μ—¬ κΈ€ μ „μ²΄μ˜ λ‚΄μš©μ„ μš”μ•½ν•œλ‹€.",
"[6κ΅­02-03] 글을 읽고 글쓴이가 λ§ν•˜κ³ μž ν•˜λŠ” μ£Όμž₯μ΄λ‚˜ 주제λ₯Ό νŒŒμ•…ν•œλ‹€.",
"[6κ΅­02-04] 글을 읽고 λ‚΄μš©μ˜ 타당성과 ν‘œν˜„μ˜ μ μ ˆμ„±μ„ νŒλ‹¨ν•œλ‹€.",
"[6κ΅­02-05] 맀체에 λ”°λ₯Έ λ‹€μ–‘ν•œ 읽기 방법을 μ΄ν•΄ν•˜κ³  μ μ ˆν•˜κ²Œ μ μš©ν•˜λ©° μ½λŠ”λ‹€.",
"[6κ΅­02-06] μžμ‹ μ˜ 읽기 μŠ΅κ΄€μ„ μ κ²€ν•˜λ©° 슀슀둜 글을 μ°Ύμ•„ μ½λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[6κ΅­03-01] μ“°κΈ°λŠ” μ ˆμ°¨μ— 따라 의미λ₯Ό κ΅¬μ„±ν•˜κ³  ν‘œν˜„ν•˜λŠ” κ³Όμ •μž„μ„ μ΄ν•΄ν•˜κ³  글을 μ“΄λ‹€.",
"[6κ΅­03-02] λͺ©μ μ΄λ‚˜ μ£Όμ œμ— 따라 μ•Œλ§žμ€ λ‚΄μš©κ³Ό 맀체λ₯Ό μ„ μ •ν•˜μ—¬ 글을 μ“΄λ‹€.",
"[6κ΅­03-03] λͺ©μ μ΄λ‚˜ λŒ€μƒμ— 따라 μ•Œλ§žμ€ ν˜•μ‹κ³Ό 자료λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„€λͺ…ν•˜λŠ” 글을 μ“΄λ‹€.",
"[6κ΅­03-04] μ μ ˆν•œ 근거와 μ•Œλ§žμ€ ν‘œν˜„μ„ μ‚¬μš©ν•˜μ—¬ μ£Όμž₯ν•˜λŠ” 글을 μ“΄λ‹€.",
"[6κ΅­03-05] μ²΄ν—˜ν•œ 일에 λŒ€ν•œ 감상이 λ“œλŸ¬λ‚˜κ²Œ 글을 μ“΄λ‹€.",
"[6κ΅­03-06] λ…μžλ₯Ό μ‘΄μ€‘ν•˜κ³  λ°°λ €ν•˜λ©° 글을 μ“°λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[6κ΅­04-01] μ–Έμ–΄λŠ” 생각을 ν‘œν˜„ν•˜λ©° λ‹€λ₯Έ μ‚¬λžŒκ³Ό 관계λ₯Ό λ§ΊλŠ” μˆ˜λ‹¨μž„μ„ μ΄ν•΄ν•˜κ³  κ΅­μ–΄μƒν™œμ„ ν•œλ‹€.",
"[6κ΅­04-02] κ΅­μ–΄μ˜ 낱말 ν™•μž₯ 방법을 νƒκ΅¬ν•˜κ³  μ–΄νœ˜λ ₯을 λ†’μ΄λŠ” 데에 μ μš©ν•œλ‹€.",
"[6κ΅­04-03] 낱말이 상황에 따라 λ‹€μ–‘ν•˜κ²Œ 해석됨을 νƒκ΅¬ν•œλ‹€.",
"[6κ΅­04-04] κ΄€μš© ν‘œν˜„μ„ μ΄ν•΄ν•˜κ³  μ μ ˆν•˜κ²Œ ν™œμš©ν•œλ‹€.",
"[6κ΅­04-05] κ΅­μ–΄μ˜ λ¬Έμž₯ 성뢄을 μ΄ν•΄ν•˜κ³  ν˜Έμ‘ 관계가 μ˜¬λ°”λ₯Έ λ¬Έμž₯을 κ΅¬μ„±ν•œλ‹€.",
"[6κ΅­04-06] μΌμƒμƒν™œμ—μ„œ κ΅­μ–΄λ₯Ό λ°”λ₯΄κ²Œ μ‚¬μš©ν•˜λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€.",
"[6κ΅­05-01] 문학은 κ°€μΉ˜ μžˆλŠ” λ‚΄μš©μ„ μ–Έμ–΄λ‘œ ν‘œν˜„ν•˜μ—¬ 아름닀움을 느끼게 ν•˜λŠ” ν™œλ™μž„μ„ μ΄ν•΄ν•˜κ³  λ¬Έν•™ ν™œλ™μ„ ν•œλ‹€.",
"[6κ΅­05-02] μž‘ν’ˆ 속 세계와 ν˜„μ‹€ 세계λ₯Ό λΉ„κ΅ν•˜λ©° μž‘ν’ˆμ„ κ°μƒν•œλ‹€.",
"[6κ΅­05-03] λΉ„μœ μ  ν‘œν˜„μ˜ νŠΉμ„±κ³Ό 효과λ₯Ό μ‚΄λ € 생각과 λŠλ‚Œμ„ λ‹€μ–‘ν•˜κ²Œ ν‘œν˜„ν•œλ‹€.",
"[6κ΅­05-04] μΌμƒμƒν™œμ˜ κ²½ν—˜μ„ μ΄μ•ΌκΈ°λ‚˜ 극의 ν˜•μ‹μœΌλ‘œ ν‘œν˜„ν•œλ‹€.",
"[6κ΅­05-05] μž‘ν’ˆμ— λŒ€ν•œ 이해와 감상을 λ°”νƒ•μœΌλ‘œ ν•˜μ—¬ λ‹€λ₯Έ μ‚¬λžŒκ³Ό 적극적으둜 μ†Œν†΅ν•œλ‹€.",
"[6κ΅­05-06] μž‘ν’ˆμ—μ„œ 얻은 κΉ¨λ‹¬μŒμ„ λ°”νƒ•μœΌλ‘œ ν•˜μ—¬ λ°”λžŒμ§ν•œ μ‚Άμ˜ κ°€μΉ˜λ₯Ό λ‚΄λ©΄ν™”ν•˜λŠ” νƒœλ„λ₯Ό μ§€λ‹Œλ‹€."
]
}
# ν•™λ…„ 선택 λ“œλ‘­λ‹€μš΄
grade = st.selectbox("학년을 μ„ νƒν•˜μ„Έμš”:", list(achievement_standards.keys()))
# μ„ νƒλœ 학년에 λ”°λ₯Έ μ„±μ·¨κΈ°μ€€ λͺ©λ‘
selected_standards = achievement_standards[grade]
selected_standard = st.selectbox("성취기쀀을 μ„ νƒν•˜μ„Έμš”:", selected_standards)
# μ„ νƒλœ 성취기쀀을 ν…μŠ€νŠΈ μž…λ ₯창의 κΈ°λ³Έκ°’μœΌλ‘œ μ‚¬μš©
achievement_standard = st.text_input("μ„±μ·¨κΈ°μ€€ μž…λ ₯:", value=selected_standard)
# "평가 생성" λ²„νŠΌ 클릭 μ‹œμ˜ λ™μž‘
if st.button("평가 생성"):
result = generate_annotated_text(achievement_standard)
# κ²°κ³Ό 좜λ ₯
# st.text(result.replace('```', '')) #κ²°κ³Όμ—μ„œ ``` 제거
exec(result.replace('```', ''))