Update app.py
Browse files
app.py
CHANGED
|
@@ -2,7 +2,9 @@ import os
|
|
| 2 |
import time
|
| 3 |
|
| 4 |
import google.generativeai as genai
|
| 5 |
-
import
|
|
|
|
|
|
|
| 6 |
|
| 7 |
# Google Gemini API ν€ μ€μ
|
| 8 |
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
|
|
@@ -21,104 +23,118 @@ model = genai.GenerativeModel(
|
|
| 21 |
generation_config=generation_config,
|
| 22 |
)
|
| 23 |
|
| 24 |
-
# ν둬ννΈ μ€μ
|
| 25 |
SYSTEM_PROMPT = """
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
μ±μ·¨κΈ°μ€: [ν΄λΉ μ£Όμ μ κ΄λ ¨λ μ±μ·¨κΈ°μ€μ μ
λ ₯νμΈμ. μ: λΉκ³Ό κ·Έλ¦Όμμ κ΄κ³λ₯Ό μ€λͺ
νκ³ , κ·Έλ¦Όμμ ν¬κΈ°μ λͺ¨μ λ³νλ₯Ό μμΈ‘ν μ μλ€.]
|
| 29 |
|
| 30 |
-
μ μ 보λ₯Ό λ°νμΌλ‘
|
| 31 |
|
| 32 |
-
|
| 33 |
* μ΄ μ£Όμ λ₯Ό κ΄μ°°νλ κ°μ₯ μ€μν κ΄μ (Conceptual Lens)μ 무μμΈκ°?
|
| 34 |
-
* μ΄ μ£Όμ λ₯Ό ν΅ν΄ νμλ€μ΄ μ΄ν΄ν΄μΌ ν κ°μ₯ μ€μν μμ΄λμ΄(Key Ideas)λ 무μμΈκ°? 2-3κ°μ λ¬Έμ₯μΌλ‘ λͺ
ννκ² κΈ°μ νμΈμ.
|
| 35 |
* μ μμ΄λμ΄λ€μ λ·λ°μΉ¨νλ μΌλ°νλ μ§μ(Generalizations)μ 3-5κ°μ λ¬Έμ₯μΌλ‘ μ€λͺ
νμΈμ.
|
| 36 |
* μ±μ·¨κΈ°μ€μ λν λ§€ν¬λ‘ κ°λ
(κ°λ
μ λ μ¦), λ§μ΄ν¬λ‘ κ°λ
(κ΅κ³Όκ°λ
)μ μ μνκ³ , μΌλ°ν(κ°λ
μ μ΄ν΄)μ μ΄λ»κ² μ°κ²°λλμ§ μ€λͺ
νμΈμ.
|
| 37 |
|
| 38 |
-
|
| 39 |
* **μ¬μ€ (Facts):** *ν΅μ¬ μμ΄λμ΄μ κ΄λ ¨λ* μ€μν μ¬μ€λ€μ μ΅μ 10κ° μ΄μ λμ΄νμΈμ.
|
| 40 |
* **κ°λ
(Concepts):** *ν΅μ¬ μμ΄λμ΄λ₯Ό μ΄ν΄νλ λ° νμν* ν΅μ¬ κ°λ
λ€μ μ μνκ³ , κ° κ°λ
μ λν μμλ₯Ό μ μνμΈμ. μ΅μ 3κ° μ΄μ μ μνμΈμ.
|
| 41 |
* **μΌλ°ν (Generalizations):** *ν΅μ¬ μμ΄λμ΄λ₯Ό λ·λ°μΉ¨νλ* κ°λ
λ€ μ¬μ΄μ κ΄κ³λ₯Ό μ€λͺ
νλ μΌλ°νλ μ§μ μ μ΅μ 3κ° μ΄μ μ μνμΈμ.
|
| 42 |
* **μ리 (Principles):** *ν΅μ¬ μμ΄λμ΄μ κ΄λ ¨λ* μΌλ°νλ₯Ό λ·λ°μΉ¨νλ οΏ½οΏ½οΏ½νμ μ리 λλ μ΄λ‘ λ€μ μ€λͺ
νμΈμ. μ΅μ 2κ° μ΄μ μ μνμΈμ.
|
| 43 |
|
| 44 |
-
|
| 45 |
|
| 46 |
-
|
| 47 |
* *ν΅μ¬ μμ΄λμ΄μ λν ν₯λ―Έμ νΈκΈ°μ¬μ μ λ°νκ³ * νμλ€μ μ§μ , μ μμ μμ
μ°Έμ¬λ₯Ό μ λνλ νλμ μ μνμΈμ. (μ: ν₯λ―Έλ‘μ΄ μ΄μΌκΈ°, μκ° μλ£, κ²μ λ±)
|
| 48 |
* νμλ€μ μ¬μ μ§μμ νμ±ννκ³ *ν΅μ¬ μμ΄λμ΄μ κ΄λ ¨λ* νꡬ μ§λ¬Έμ μ λνλ νλμ μ μνμΈμ. (μ: λΈλ μΈμ€ν λ°, λ§μΈλλ§΅, μ§μμλ΅ λ±)
|
| 49 |
|
| 50 |
-
|
| 51 |
* κ΅κ³Ό κ°λ
μ λͺ
ννκ² μ μνκ³ κ΄λ ¨λ μ¬μ€μ μλ₯Ό 2-3κ° μκ°νλ νλμ μ μνμΈμ. (μ: κ°μ, μ€λͺ
, μλ² μ€ν λ±)
|
| 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 |
* GRASPS(Goal, Role, Audience, Situation, Product/Performance, Standards) μμλ₯Ό νμ©νμ¬ μν κ³Όμ λ₯Ό μ€κ³νμΈμ.
|
| 80 |
|
| 81 |
-
|
| 82 |
* νμλ€μ΄ ν΅μ¬ κ°λ
μ κΉμ΄ μκ² μ΄ν΄νκ³ μ°κ²°νλ©°, μΌλ°νλ₯Ό λμΆνκ³ μ μ©ν μ μλλ‘ λλ ν¨κ³Όμ μΈ κ΅μ μ λ΅μ 무μμΈκ°?
|
| 83 |
* μ€κ°λ
μ μλ°©νκ³ ν΄κ²°νλ λ°©λ²μ 무μμΈκ°?
|
| 84 |
* νμλ€μ λ€μν νμ΅ μ€νμΌκ³Ό μꡬλ₯Ό μΆ©μ‘±νλ λ°©λ²μ 무μμΈκ°?
|
| 85 |
* ν΅μ¬ κ°λ
κ³Ό κ΄λ ¨λ μ€μν μ¬λ‘λ₯Ό μ μνμ¬ νμ΅μ μλ―Έμ κ΄λ ¨μ±μ λμ΄λ λ°©μμ μ μνμΈμ. λ©ν°λ―Έλμ΄, μκ° μλ£, κ²μ, νλ ₯ νμ΅ λ± λ€μν κ΅μλ²μ νμ©νλ λ°©μμ μ μνμΈμ.
|
| 86 |
"""
|
| 87 |
|
| 88 |
-
def generate_curriculum(
|
| 89 |
-
"""
|
| 90 |
-
μ£Όμ , νλ
, μ±μ·¨κΈ°μ€μ μ
λ ₯λ°μ κ°λ
κΈ°λ° νꡬνμ΅μ μμ±ν©λλ€.
|
| 91 |
-
"""
|
| 92 |
|
| 93 |
prompt = [
|
| 94 |
SYSTEM_PROMPT,
|
| 95 |
-
f"**
|
| 96 |
-
f"**
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
import time
|
| 3 |
|
| 4 |
import google.generativeai as genai
|
| 5 |
+
import streamlit as st
|
| 6 |
+
from streamlit_extras.colored_header import colored_header
|
| 7 |
+
from streamlit_extras.add_vertical_space import add_vertical_space
|
| 8 |
|
| 9 |
# Google Gemini API ν€ μ€μ
|
| 10 |
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
|
|
|
|
| 23 |
generation_config=generation_config,
|
| 24 |
)
|
| 25 |
|
| 26 |
+
# ν둬ννΈ μ€μ (νλ
, μ±μ·¨κΈ°μ€ κΈ°λ°)
|
| 27 |
SYSTEM_PROMPT = """
|
| 28 |
+
λμ νλ
: [νλ
μ λͺ
μνμΈμ. μ: μ΄λ± 3νλ
]
|
| 29 |
+
μ±μ·¨κΈ°μ€ λ° μ£Όμ λ΄μ©: [ν΄λΉ νλ
κ³Ό κ΄λ ¨λ μ±μ·¨κΈ°μ€ λ° μ£Όμ λ΄μ©μ μ
λ ₯νμΈμ.]
|
|
|
|
| 30 |
|
| 31 |
+
μ μ 보λ₯Ό λ°νμΌλ‘ ν΅μ¬ μμ΄λμ΄ μ΄ν΄λ₯Ό λͺ©νλ‘ νλ μ΄λ±νκ΅ μμ€μ μ ν©ν κ°λ
κΈ°λ° κ΅μ‘κ³Όμ μ μ€κ³ν΄ μ£ΌμΈμ. λ€μ κ΅¬μ± μμμ λ°λΌ μμΈνκ³ μ²΄κ³μ μΌλ‘ μ€λͺ
ν΄μΌ ν©λλ€. κ° κ΅¬μ± μμλ μλ‘ μ°κ²°λκ³ μ κΈ°μ μΌλ‘ ꡬμ±λμ΄μΌ νλ©°, νμλ€μ ν₯λ―Έμ μ°Έμ¬λ₯Ό μ λν μ μλ μ°½μμ μ΄κ³ νμ μ μΈ νλλ€μ μ μν΄μΌ ν©λλ€. νΉν, λͺ¨λ νλμ νμλ€μ΄ μ€μ€λ‘ ν΅μ¬ μμ΄λμ΄λ₯Ό λ°κ²¬νκ³ κΉμ΄ μκ² μ΄ν΄ν μ μλλ‘ μ€κ³λμ΄μΌ ν©λλ€. μ€νΈλλ(Strand)λ λ¨μμ μμ£Όμ μ κ°μΌλ©°, κ° μ€νΈλλλ μ¬λ¬ μ°¨μμ μμ
μΌλ‘ ꡬμ±λ©λλ€. μ°¨μλ³ νλ λ΄μ©κΉμ§ μμΈν κΈ°μ ν΄ μ£ΌμΈμ. μ 체μ μΈ νλ¦μ "κ΄κ³λ§ΊκΈ° - μ§μ€νκΈ° - μ‘°μ¬νκΈ° - μ‘°μ§ λ° μ 리νκΈ° - μΌλ°ν - μ μ΄ - μ±μ°°νκΈ°"μ μμλ₯Ό λ°λΌμΌ ν©λλ€. λͺ¨λ νλκ³Ό νκ°λ 1λ² νλͺ©μμ μ μλλ ν΅μ¬ μμ΄λμ΄μ μ΄ν΄λ₯Ό μ΄μ§νλ λ°©ν₯μΌλ‘ μ€κ³λμ΄μΌ ν©λλ€.
|
| 32 |
|
| 33 |
+
1. ν΅μ¬ μμ΄λμ΄ (Key Ideas & Generalizations):
|
| 34 |
* μ΄ μ£Όμ λ₯Ό κ΄μ°°νλ κ°μ₯ μ€μν κ΄μ (Conceptual Lens)μ 무μμΈκ°?
|
| 35 |
+
* μ΄ μ£Όμ λ₯Ό ν΅ν΄ νμλ€μ΄ μ΄ν΄ν΄μΌ ν κ°μ₯ μ€μν μμ΄λμ΄(Key Ideas)λ 무μμΈκ°? 2-3κ°μ λ¬Έμ₯μΌλ‘ λͺ
ννκ² κΈ°μ νμΈμ. **μ΄ ν΅μ¬ μμ΄λμ΄λ μ΄ν λͺ¨λ νꡬ νλ λ° νκ°μ μ€μ¬ λͺ©νκ° λ©λλ€.**
|
| 36 |
* μ μμ΄λμ΄λ€μ λ·λ°μΉ¨νλ μΌλ°νλ μ§μ(Generalizations)μ 3-5κ°μ λ¬Έμ₯μΌλ‘ μ€λͺ
νμΈμ.
|
| 37 |
* μ±μ·¨κΈ°μ€μ λν λ§€ν¬λ‘ κ°λ
(κ°λ
μ λ μ¦), λ§μ΄ν¬λ‘ κ°λ
(κ΅κ³Όκ°λ
)μ μ μνκ³ , μΌλ°ν(κ°λ
μ μ΄ν΄)μ μ΄λ»κ² μ°κ²°λλμ§ μ€λͺ
νμΈμ.
|
| 38 |
|
| 39 |
+
2. μ§μμ λ²μ£Ό (Knowledge Categories - λ¦° μλ¦μ¨μ λΆλ₯ κΈ°μ€):
|
| 40 |
* **μ¬μ€ (Facts):** *ν΅μ¬ μμ΄λμ΄μ κ΄λ ¨λ* μ€μν μ¬μ€λ€μ μ΅μ 10κ° μ΄μ λμ΄νμΈμ.
|
| 41 |
* **κ°λ
(Concepts):** *ν΅μ¬ μμ΄λμ΄λ₯Ό μ΄ν΄νλ λ° νμν* ν΅μ¬ κ°λ
λ€μ μ μνκ³ , κ° κ°λ
μ λν μμλ₯Ό μ μνμΈμ. μ΅μ 3κ° μ΄μ μ μνμΈμ.
|
| 42 |
* **μΌλ°ν (Generalizations):** *ν΅μ¬ μμ΄λμ΄λ₯Ό λ·λ°μΉ¨νλ* κ°λ
λ€ μ¬μ΄μ κ΄κ³λ₯Ό μ€λͺ
νλ μΌλ°νλ μ§μ μ μ΅μ 3κ° μ΄μ μ μνμΈμ.
|
| 43 |
* **μ리 (Principles):** *ν΅μ¬ μμ΄λμ΄μ κ΄λ ¨λ* μΌλ°νλ₯Ό λ·λ°μΉ¨νλ οΏ½οΏ½οΏ½νμ μ리 λλ μ΄λ‘ λ€μ μ€λͺ
νμΈμ. μ΅μ 2κ° μ΄μ μ μνμΈμ.
|
| 44 |
|
| 45 |
+
3. κ°λ
κΈ°λ° νꡬ νμ΅ κ³Όμ μ€κ³: *μμ μ μλ ν΅μ¬ μμ΄λμ΄, μΌλ°ν, μ§μ λ²μ£Όλ₯Ό κΈ°λ°μΌλ‘ λ€μ λ¨κ³μ λ°λΌ νꡬ νμ΅ κ³Όμ μ μ€κ³νμΈμ. λͺ¨λ νλμ νμλ€μ΄ ν΅μ¬ μμ΄λμ΄λ₯Ό μ΄ν΄νλλ‘ λλ λ° μ΄μ μ λ§μΆ°μΌ ν©λλ€.*
|
| 46 |
|
| 47 |
+
(1) κ΄κ³ λ§ΊκΈ° (Engaging):
|
| 48 |
* *ν΅μ¬ μμ΄λμ΄μ λν ν₯λ―Έμ νΈκΈ°μ¬μ μ λ°νκ³ * νμλ€μ μ§μ , μ μμ μμ
μ°Έμ¬λ₯Ό μ λνλ νλμ μ μνμΈμ. (μ: ν₯λ―Έλ‘μ΄ μ΄μΌκΈ°, μκ° μλ£, κ²μ λ±)
|
| 49 |
* νμλ€μ μ¬μ μ§μμ νμ±ννκ³ *ν΅μ¬ μμ΄λμ΄μ κ΄λ ¨λ* νꡬ μ§λ¬Έμ μ λνλ νλμ μ μνμΈμ. (μ: λΈλ μΈμ€ν λ°, λ§μΈλλ§΅, μ§μμλ΅ λ±)
|
| 50 |
|
| 51 |
+
(2) μ§μ€νκΈ° (Focusing):
|
| 52 |
* κ΅κ³Ό κ°λ
μ λͺ
ννκ² μ μνκ³ κ΄λ ¨λ μ¬μ€μ μλ₯Ό 2-3κ° μκ°νλ νλμ μ μνμΈμ. (μ: κ°μ, μ€λͺ
, μλ² μ€ν λ±)
|
| 53 |
|
| 54 |
+
(3) μ‘°μ¬νκΈ° (Investigating):
|
| 55 |
* κ°λ
κ΄λ ¨ μ¬λ‘λ€μ μ‘°μ¬νκ³ νꡬνλ νλμ μ μνμΈμ. (μ: μ€ν, κ΄μ°°, μ‘°μ¬, ν λ‘ , μλ£ λΆμ λ±)
|
| 56 |
* μΆκ°μ μΈ μ¬λ‘ μ μλ₯Ό ν΅ν΄ κ°λ
μ΄ν΄λ₯Ό νμ₯νλ νλμ μ μνμΈμ.
|
| 57 |
|
| 58 |
+
(4) μ‘°μ§ λ° μ 리νκΈ° (Organizing and Sorting):
|
| 59 |
* μ¬μ€μ , κ°λ
μ μμ€μμ μκ°μ ꡬμ±νκ³ μ 리νλ νλμ μ μνμΈμ. (μ: ν λ§λ€κΈ°, κ·Έλν 그리기, κ°λ
μ§λ μμ± λ±)
|
| 60 |
* λ€μν μλ£μ λ°©λ², κ΅κ³Όλ₯Ό νμ©νμ¬ κ°λ
κ³Ό μκ°μ λνλ΄λ νλμ μ μνμΈμ. (μ: κ·Έλ¦Ό 그리기, κΈμ°κΈ°, λ°ν, λͺ¨ν λ§λ€κΈ° λ±)
|
| 61 |
|
| 62 |
+
(5) μΌλ°ννκΈ° (Generalizing):
|
| 63 |
* μ¬μ€μ μμμμ ν¨ν΄μ λ°κ²¬νκ³ μ°κ²°μ±μ μ°Ύμ μΌλ°νλ₯Ό λμΆνλ νλμ μ μνμΈμ. (μ: λ²€ λ€μ΄μ΄κ·Έλ¨, κ·λ©μ μΆλ‘ νλ λ±)
|
| 64 |
* μΌλ°νλ₯Ό λͺ
λ£ννκ³ λ€λ¬λ νλμ μ μνμΈμ.
|
| 65 |
|
| 66 |
+
(6) μ μ΄νκΈ° (Transferring):
|
| 67 |
* μΌλ°νμ μ ν¨μ±μ κ²μ¦νκ³ μ λΉννλ νλμ μ μνμΈμ.
|
| 68 |
* μλ‘μ΄ μν©μ μΌλ°νλ₯Ό μ μ©νκ³ , νμ΅μ λν΄ μλ―Έ μλ νλμ μ·¨νλ νλμ μ μνμΈμ. (μ: λ¬Έμ ν΄κ²°, μμ¬ κ²°μ , μ°½μμ μ°μΆλ¬Ό μ μ λ±)
|
| 69 |
* μμΈ‘ λ° κ°μ μ νμ±νκΈ° μν΄ κ²½νκ³Ό μ΄ν΄λ₯Ό νμ©νλ νλμ μ μνμΈμ.
|
| 70 |
|
| 71 |
+
(7) μ±μ°°νκΈ° (Reflecting):
|
| 72 |
* νμ΅ μ£Όμ²΄λ‘μ μμ μ μΈμνκ³ νμ΅ κ³Όμ μ κ³ννκ³ ν΅μ νλ νλμ μ μνμΈμ. (μ: νμ΅ κ³ν μΈμ°κΈ°, νμ΅ μΌμ§ μμ± λ±)
|
| 73 |
* μμ μ νμ΅ κ³Όμ μ νκ°νκ³ κ°μ νλ νλμ μ μνμΈμ. (μ: μκΈ° νκ°, λλ£ νκ°, νΌλλ°± νμ© λ±)
|
| 74 |
|
| 75 |
|
| 76 |
+
4. νκ° κ³ν λ° μνκ³Όμ (GRASPS), νκ° λ£¨λΈλ¦(μ, μ€, ν νμ΄):
|
| 77 |
* κ° μ€νΈλλ λ° ν΅μ¬ κ°λ
μ λν νμλ€μ μ΄ν΄λλ₯Ό νκ°ν μ μλ νκ° λ°©λ² λ° λ£¨λΈλ¦μ μ μνμΈμ. (κ΄μ°°, λ°ν, ν¬νΈν΄λ¦¬μ€, μκΈ° νκ°, λλ£ νκ°, ν΄μ¦, μν, μν κ³Όμ λ±)
|
| 78 |
* 루λΈλ¦μ μ, μ€, νμ λν ꡬ체μ μΈ νκ° κΈ°μ€κ³Ό κ° μμ€μ ν΄λΉνλ νμμ μμ
λλ μν μμλ₯Ό ν¬ν¨ν΄μΌ ν©λλ€.
|
| 79 |
* νκ°λ λ¨μν μ§μ μκΈ° μ¬λΆλ₯Ό 묻λ κ²μ΄ μλλΌ, νμλ€μ νꡬ κ³Όμ , μ¬κ³ λ ₯, λ¬Έμ ν΄κ²° λ₯λ ₯, νλ ₯μ νλ, κ°λ
μ μ΄ν΄, μΌλ°ν λμΆ λ₯λ ₯, μ μ΄ λ₯λ ₯ λ±μ μ’
ν©μ μΌλ‘ νκ°ν΄μΌ ν©λλ€.
|
| 80 |
* GRASPS(Goal, Role, Audience, Situation, Product/Performance, Standards) μμλ₯Ό νμ©νμ¬ μν κ³Όμ λ₯Ό μ€κ³νμΈμ.
|
| 81 |
|
| 82 |
+
5. νμμ νꡬλ₯Ό μν ν:
|
| 83 |
* νμλ€μ΄ ν΅μ¬ κ°λ
μ κΉμ΄ μκ² μ΄ν΄νκ³ μ°κ²°νλ©°, μΌλ°νλ₯Ό λμΆνκ³ μ μ©ν μ μλλ‘ λλ ν¨κ³Όμ μΈ κ΅μ μ λ΅μ 무μμΈκ°?
|
| 84 |
* μ€κ°λ
μ μλ°©νκ³ ν΄κ²°νλ λ°©λ²μ 무μμΈκ°?
|
| 85 |
* νμλ€μ λ€μν νμ΅ μ€νμΌκ³Ό μꡬλ₯Ό μΆ©μ‘±νλ λ°©λ²μ 무μμΈκ°?
|
| 86 |
* ν΅μ¬ κ°λ
κ³Ό κ΄λ ¨λ μ€μν μ¬λ‘λ₯Ό μ μνμ¬ νμ΅μ μλ―Έμ κ΄λ ¨μ±μ λμ΄λ λ°©μμ μ μνμΈμ. λ©ν°λ―Έλμ΄, μκ° μλ£, κ²μ, νλ ₯ νμ΅ λ± λ€μν κ΅μλ²μ νμ©νλ λ°©μμ μ μνμΈμ.
|
| 87 |
"""
|
| 88 |
|
| 89 |
+
def generate_curriculum(grade, achievement_standard):
|
| 90 |
+
"""νλ
κ³Ό μ±μ·¨κΈ°μ€μ μ
λ ₯λ°μ κ°λ
κΈ°λ° κ΅μ‘κ³Όμ μ μμ±ν©λλ€."""
|
|
|
|
|
|
|
| 91 |
|
| 92 |
prompt = [
|
| 93 |
SYSTEM_PROMPT,
|
| 94 |
+
f"**λμ νλ
:** {grade}",
|
| 95 |
+
f"**μ±μ·¨κΈ°μ€ λ° μ£Όμ λ΄μ©:** {achievement_standard}",
|
| 96 |
+
"**κ°λ
κΈ°λ° κ΅μ‘κ³Όμ :**",
|
|
|
|
| 97 |
]
|
| 98 |
|
| 99 |
+
full_text = ""
|
| 100 |
+
output_area = st.empty()
|
| 101 |
+
|
| 102 |
+
try:
|
| 103 |
+
response = model.generate_content(prompt, stream=True)
|
| 104 |
+
for chunk in response:
|
| 105 |
+
full_text += chunk.text
|
| 106 |
+
output_area.text_area("κ°λ
κΈ°λ° κ΅μ‘κ³Όμ ", value=full_text, height=600)
|
| 107 |
+
except Exception as e:
|
| 108 |
+
st.error(f"μλ¬ λ°μ: {str(e)}")
|
| 109 |
+
return ""
|
| 110 |
+
|
| 111 |
+
return full_text
|
| 112 |
+
|
| 113 |
+
|
| 114 |
+
# Streamlit μΈν°νμ΄μ€ (μ΄μ μ½λμ λμΌ)
|
| 115 |
+
colored_header(
|
| 116 |
+
label="κ°λ
κΈ°λ° κ΅μ‘κ³Όμ μ€κ³ λμ°λ―Έ",
|
| 117 |
+
description="μ΄λ±νκ΅ κ΅μ‘κ³Όμ μ λ§λ κ°λ
κΈ°λ° κ΅μ‘κ³Όμ μ μμ±ν©λλ€.",
|
| 118 |
+
color_name="blue-70",
|
| 119 |
)
|
| 120 |
|
| 121 |
+
add_vertical_space(1)
|
| 122 |
+
|
| 123 |
+
with st.sidebar.expander("μ
λ ₯ μ€μ ", expanded=True):
|
| 124 |
+
grade_options = [f"μ΄λ±νκ΅ {i}νλ
" for i in range(1, 7)]
|
| 125 |
+
grade_selected = st.selectbox("νλ
μ ν", grade_options, index=0)
|
| 126 |
+
grade = grade_selected # μ νλ νλ
λ¬Έμμ΄ κ·Έλλ‘ μ¬μ©
|
| 127 |
+
|
| 128 |
+
achievement_standard = st.text_area("μ±μ·¨κΈ°μ€ λ° μ£Όμ λ΄μ© μ
λ ₯", height=200)
|
| 129 |
+
|
| 130 |
+
generate_button = st.button("κ΅μ‘κ³Όμ μμ±")
|
| 131 |
+
|
| 132 |
+
if generate_button and achievement_standard:
|
| 133 |
+
result = generate_curriculum(grade, achievement_standard)
|
| 134 |
+
st.session_state.generated_curriculum = result
|
| 135 |
+
elif generate_button and not achievement_standard:
|
| 136 |
+
st.warning("μ±μ·¨κΈ°μ€ λ° μ£Όμ λ΄μ©μ μ
λ ₯νμΈμ.")
|
| 137 |
+
|
| 138 |
+
output_area = st.empty()
|
| 139 |
+
if "generated_curriculum" in st.session_state and st.session_state.generated_curriculum:
|
| 140 |
+
output_area.text_area("κ°λ
κΈ°λ° κ΅μ‘κ³Όμ ", value=st.session_state.generated_curriculum, height=600)
|