Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,10 +1,12 @@
|
|
| 1 |
import os
|
| 2 |
import time
|
| 3 |
-
|
| 4 |
import google.generativeai as genai
|
| 5 |
-
|
|
|
|
|
|
|
| 6 |
|
| 7 |
-
# Google Gemini API
|
| 8 |
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
|
| 9 |
|
| 10 |
# ๋ชจ๋ธ ์ค์
|
|
@@ -21,43 +23,39 @@ model = genai.GenerativeModel(
|
|
| 21 |
generation_config=generation_config,
|
| 22 |
)
|
| 23 |
|
| 24 |
-
|
| 25 |
-
SYSTEM_PROMPT = """
|
| 26 |
-
๋น์ ์ ๊ต์ํ์ต ํ๋ ์ค๊ณ ์ ๋ฌธ๊ฐ, ๊ต๊ณผ๊ต์ก ๋ด์ฉ ์ ๋ฌธ๊ฐ, ๊ต์ก๊ณตํ์์
๋๋ค.
|
| 27 |
-
์ ์๋๋ค์ด ํ๋ ์ปจ์
๋ฐ ์๊ฐ๋ฅผ ์
๋ ฅํ๋ฉด ํ๋์ ์์ธํ๊ฒ ์ค๋ช
ํด์ฃผ์ธ์..
|
| 28 |
-
๋ค์์ ํ๋ ์ค๊ณ์ ํ์ํ ์ ๋ณด์
๋๋ค.
|
| 29 |
-
|
| 30 |
-
**ํ๋ ๊ตฌ์ฑ ์์:**
|
| 31 |
-
1. ํ๋ ์ปจ์
๋ฐ ์๊ฐ
|
| 32 |
-
2. ํ๋ ๋ชฉํ
|
| 33 |
-
3. ํ๋ ๋จ๊ณ๋ณ ์๋ด
|
| 34 |
-
- 1๋จ๊ณ: 1๋จ๊ณ ํ๋ ์๋ด
|
| 35 |
-
- 2๋จ๊ณ: 2๋จ๊ณ ํ๋ ์๋ด
|
| 36 |
-
- 3๋จ๊ณ: 3๋จ๊ณ ํ๋ ์๋ด
|
| 37 |
-
- 4๋จ๊ณ: 4๋จ๊ณ ํ๋ ์๋ด...
|
| 38 |
-
4. ํ๋ ์ค๋น๋ฌผ ๋ฐ ๊ธฐ๊ตฌ
|
| 39 |
-
5. ํ๋์ ์ํ ์๋ฃ
|
| 40 |
-
- ํ๋์ ํ์ํ ์๋ฃ
|
| 41 |
-
- ์ถ๊ฐ ์ถ์ฒ ์๋ฃ
|
| 42 |
-
6. ํ๋์ ์ ์์
|
| 43 |
-
- ํ์ ์
์ฅ ์ ์์
|
| 44 |
-
- ๊ต์ฌ ์
์ฅ ์ ์์
|
| 45 |
-
7. ํ์์๊ฒ ์ ๊ณตํ ํ๋ ์๋ด ์๋ฃ
|
| 46 |
-
* ํ๋ ์๋ด ์๋ฃ๋ ์ด๋ฑํ์์ด ์ดํดํ ์ ์๋๋ก ์ต๋ํ ๊ตฌ์ฒด์ ์ด๊ณ , ๋จ๊ณ์ , ๋ช
์์ ์ผ๋ก ์๋ดํด์ฃผ์ธ์.
|
| 47 |
-
"""
|
| 48 |
-
|
| 49 |
-
def generate_curriculum(achievement_standard):
|
| 50 |
"""
|
| 51 |
ํ๋ ์ปจ์
์ ์
๋ ฅ๋ฐ์ ํ๋์ ์์ฑํฉ๋๋ค.
|
| 52 |
์์ํ์ ์ค์๊ฐ์ผ๋ก ์ถ๋ ฅํฉ๋๋ค.
|
| 53 |
-
|
| 54 |
Args:
|
| 55 |
achievement_standard (str): ํ๋ ์ปจ์
|
| 56 |
-
|
| 57 |
Returns:
|
| 58 |
str: ์์ฑ๋ ํ๋
|
| 59 |
"""
|
| 60 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
prompt = [
|
| 62 |
SYSTEM_PROMPT,
|
| 63 |
f"**ํ๋ ์ปจ์
:** {achievement_standard}",
|
|
@@ -72,17 +70,34 @@ def generate_curriculum(achievement_standard):
|
|
| 72 |
yield collected_text # ์ค์๊ฐ ์ถ๋ ฅ์ ์ํด yield ์ฌ์ฉ
|
| 73 |
time.sleep(0.03) # ์ถ๋ ฅ ์๋ ์กฐ์
|
| 74 |
|
| 75 |
-
#
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
inputs=gr.Textbox(lines=3, label="ํ๋ ์ปจ์
๋ฐ ์๊ฐ ์
๋ ฅ"),
|
| 79 |
-
outputs=gr.Textbox(lines=10, label="ํ์ต ํ๋"),
|
| 80 |
-
title="ํ์ต ํ๋ ์ค๊ณ ๋์ฐ๋ฏธ",
|
| 81 |
description="์ ์๋์ด ํ๋์ ์ปจ์
์ ์
๋ ฅํ์๋ฉด ํ๋์ ๊ตฌ์ฒด์ ์ผ๋ก ์ค๊ณํด์ค๋๋ค.",
|
| 82 |
-
|
| 83 |
-
["๊ตญ๊ฒฝ, ์งํ, ์์, ์ธ๊ตฌ์ ๋ณด, ๊ตญ๊ฐ ๊ฐ ๊ด๊ณ๊ฐ ํ์๋ ์ง๋์ ์๋๋ฆฌ์ค๋ฅผ ์ฃผ๊ณ , ๋๋ผ ๊ฐ ๊ตญ๊ฒฝ์ ์ ์ ํ๋ ํ๋์ ์๋ฎฌ๋ ์ด์
๊ฒ์ ๋ชจํ์ ํ์ฉํด ํ๊ณ ์ถ์ด."],
|
| 84 |
-
]
|
| 85 |
)
|
| 86 |
|
| 87 |
-
|
| 88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import os
|
| 2 |
import time
|
| 3 |
+
import streamlit as st
|
| 4 |
import google.generativeai as genai
|
| 5 |
+
from streamlit_extras.colored_header import colored_header
|
| 6 |
+
from streamlit_extras.add_vertical_space import add_vertical_space
|
| 7 |
+
import markdown
|
| 8 |
|
| 9 |
+
# Google Gemini API Key ์ค์
|
| 10 |
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
|
| 11 |
|
| 12 |
# ๋ชจ๋ธ ์ค์
|
|
|
|
| 23 |
generation_config=generation_config,
|
| 24 |
)
|
| 25 |
|
| 26 |
+
def generate_lesson_plan(achievement_standard):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
"""
|
| 28 |
ํ๋ ์ปจ์
์ ์
๋ ฅ๋ฐ์ ํ๋์ ์์ฑํฉ๋๋ค.
|
| 29 |
์์ํ์ ์ค์๊ฐ์ผ๋ก ์ถ๋ ฅํฉ๋๋ค.
|
|
|
|
| 30 |
Args:
|
| 31 |
achievement_standard (str): ํ๋ ์ปจ์
|
|
|
|
| 32 |
Returns:
|
| 33 |
str: ์์ฑ๋ ํ๋
|
| 34 |
"""
|
| 35 |
|
| 36 |
+
SYSTEM_PROMPT = """
|
| 37 |
+
๋น์ ์ ๊ต์ํ์ต ํ๋ ์ค๊ณ ์ ๋ฌธ๊ฐ, ๊ต๊ณผ๊ต์ก ๋ด์ฉ ์ ๋ฌธ๊ฐ, ๊ต์ก๊ณตํ์์
๋๋ค.
|
| 38 |
+
์ ์๋๋ค์ด ํ๋ ์ปจ์
๋ฐ ์๊ฐ๋ฅผ ์
๋ ฅํ๋ฉด ํ๋์ ์์ธํ๊ฒ ์ค๋ช
ํด์ฃผ์ธ์..
|
| 39 |
+
๋ค์์ ํ๋ ์ค๊ณ์ ํ์ํ ์ ๋ณด์
๋๋ค.
|
| 40 |
+
**ํ๋ ๊ตฌ์ฑ ์์:**
|
| 41 |
+
1. ํ๋ ์ปจ์
๋ฐ ์๊ฐ
|
| 42 |
+
2. ํ๋ ๋ชฉํ
|
| 43 |
+
3. ํ๋ ๋จ๊ณ๋ณ ์๋ด
|
| 44 |
+
- 1๋จ๊ณ: 1๋จ๊ณ ํ๋ ์๋ด
|
| 45 |
+
- 2๋จ๊ณ: 2๋จ๊ณ ํ๋ ์๋ด
|
| 46 |
+
- 3๋จ๊ณ: 3๋จ๊ณ ํ๋ ์๋ด
|
| 47 |
+
- 4๋จ๊ณ: 4๋จ๊ณ ํ๋ ์๋ด...
|
| 48 |
+
4. ํ๋ ์ค๋น๋ฌผ ๋ฐ ๊ธฐ๊ตฌ
|
| 49 |
+
5. ํ๋์ ์ํ ์๋ฃ
|
| 50 |
+
- ํ๋์ ํ์ํ ์๋ฃ
|
| 51 |
+
- ์ถ๊ฐ ์ถ์ฒ ์๋ฃ
|
| 52 |
+
6. ํ๋์ ์ ์์
|
| 53 |
+
- ํ์ ์
์ฅ ์ ์์
|
| 54 |
+
- ๊ต์ฌ ์
์ฅ ์ ์์
|
| 55 |
+
7. ํ์์๊ฒ ์ ๊ณตํ ํ๋ ์๋ด ์๋ฃ
|
| 56 |
+
* ํ๋ ์๋ด ์๋ฃ๋ ์ด๋ฑํ์์ด ์ดํดํ ์ ์๋๋ก ์ต๋ํ ๊ตฌ์ฒด์ ์ด๊ณ , ๋จ๊ณ์ , ๋ช
์์ ์ผ๋ก ์๋ดํด์ฃผ์ธ์.
|
| 57 |
+
"""
|
| 58 |
+
|
| 59 |
prompt = [
|
| 60 |
SYSTEM_PROMPT,
|
| 61 |
f"**ํ๋ ์ปจ์
:** {achievement_standard}",
|
|
|
|
| 70 |
yield collected_text # ์ค์๊ฐ ์ถ๋ ฅ์ ์ํด yield ์ฌ์ฉ
|
| 71 |
time.sleep(0.03) # ์ถ๋ ฅ ์๋ ์กฐ์
|
| 72 |
|
| 73 |
+
# Streamlit Interface
|
| 74 |
+
colored_header(
|
| 75 |
+
label="ํ์ต ํ๋ ์ค๊ณ ๋์ฐ๋ฏธ",
|
|
|
|
|
|
|
|
|
|
| 76 |
description="์ ์๋์ด ํ๋์ ์ปจ์
์ ์
๋ ฅํ์๋ฉด ํ๋์ ๊ตฌ์ฒด์ ์ผ๋ก ์ค๊ณํด์ค๋๋ค.",
|
| 77 |
+
color_name="red-70",
|
|
|
|
|
|
|
| 78 |
)
|
| 79 |
|
| 80 |
+
add_vertical_space(1)
|
| 81 |
+
|
| 82 |
+
achievement_standard = st.text_area("ํ๋ ์ปจ์
๋ฐ ์๊ฐ ์
๋ ฅ", height=100)
|
| 83 |
+
|
| 84 |
+
generate_button = st.button("ํ์ต ํ๋ ์์ฑ")
|
| 85 |
+
|
| 86 |
+
# ์ถ๋ ฅ ์์ญ ์ ์
|
| 87 |
+
output_area = st.empty()
|
| 88 |
+
|
| 89 |
+
if generate_button and achievement_standard:
|
| 90 |
+
output_text = ""
|
| 91 |
+
output_area.markdown(output_text)
|
| 92 |
+
try:
|
| 93 |
+
for partial_output in generate_lesson_plan(achievement_standard):
|
| 94 |
+
output_text = partial_output
|
| 95 |
+
output_area.markdown(output_text)
|
| 96 |
+
except Exception as e:
|
| 97 |
+
st.error(f"์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค: {str(e)}")
|
| 98 |
+
|
| 99 |
+
# ๋ณต์ฌ ๋ฒํผ ์ถ๊ฐ
|
| 100 |
+
if output_text:
|
| 101 |
+
if st.button("์ถ๋ ฅ ๋ด์ฉ ๋ณต์ฌ"):
|
| 102 |
+
st.write(output_text)
|
| 103 |
+
st.success("์ถ๋ ฅ ๋ด์ฉ์ด ๋ณต์ฌ๋์์ต๋๋ค!")
|