Spaces:
Sleeping
Sleeping
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('```', '')) | |