Spaces:
Sleeping
Sleeping
File size: 12,472 Bytes
829f184 22a5c64 829f184 22a5c64 cc9698d 829f184 768f592 829f184 768f592 829f184 |
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 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
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('```', ''))
|