Update app.py
Browse files
app.py
CHANGED
|
@@ -3,6 +3,8 @@ import time
|
|
| 3 |
|
| 4 |
import google.generativeai as genai
|
| 5 |
import streamlit as st
|
|
|
|
|
|
|
| 6 |
|
| 7 |
# Google Gemini API ํค ์ค์
|
| 8 |
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
|
|
@@ -93,28 +95,46 @@ def generate_curriculum(grade, achievement_standard):
|
|
| 93 |
|
| 94 |
|
| 95 |
# Streamlit ์ธํฐํ์ด์ค
|
| 96 |
-
|
| 97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
|
| 99 |
-
# ์
๋ ฅ ์์ ฏ (์ฌ์ด๋๋ฐ
|
| 100 |
-
with st.sidebar:
|
| 101 |
grade_options = ["์ด๋ฑํ๊ต 1ํ๋
", "์ด๋ฑํ๊ต 2ํ๋
", "์ด๋ฑํ๊ต 3ํ๋
", "์ด๋ฑํ๊ต 4ํ๋
", "์ด๋ฑํ๊ต 5ํ๋
", "์ด๋ฑํ๊ต 6ํ๋
"]
|
| 102 |
grade_selected = st.selectbox("ํ๋
์ ํ", grade_options, index=0)
|
| 103 |
-
grade = grade_options.index(grade_selected) + 1
|
| 104 |
|
| 105 |
achievement_standard = st.text_area("์ฑ์ทจ๊ธฐ์ค ๋ฐ ์ฃผ์ ๋ด์ฉ ์
๋ ฅ", height=200)
|
|
|
|
|
|
|
| 106 |
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
|
| 114 |
|
| 115 |
-
# ์ถ๋ ฅ ์์ญ (
|
| 116 |
if "generated_curriculum" in st.session_state:
|
| 117 |
-
st.
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
st.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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"])
|
|
|
|
| 95 |
|
| 96 |
|
| 97 |
# Streamlit ์ธํฐํ์ด์ค
|
| 98 |
+
colored_header(
|
| 99 |
+
label="๊ฐ๋
๊ธฐ๋ฐ ๊ต์ก๊ณผ์ ์ค๊ณ ๋์ฐ๋ฏธ",
|
| 100 |
+
description="์ด๋ฑํ๊ต ๊ต์ก๊ณผ์ ์ ๋ง๋ ๊ฐ๋
๊ธฐ๋ฐ ๊ต์ก๊ณผ์ ์ ์์ฑํฉ๋๋ค.",
|
| 101 |
+
color_name="blue-70", # ์์ ๋ณ๊ฒฝ ๊ฐ๋ฅ
|
| 102 |
+
)
|
| 103 |
+
|
| 104 |
+
add_vertical_space(1) # ๊ณต๊ฐ ์ถ๊ฐ
|
| 105 |
|
| 106 |
+
# ์
๋ ฅ ์์ ฏ (์ฌ์ด๋๋ฐ ์ฌ์ฉ, ํ์ฅ ๊ฐ๋ฅ)
|
| 107 |
+
with st.sidebar.expander("์
๋ ฅ ์ค์ ", expanded=True): # ํ์ฅ ๊ฐ๋ฅ ํจ๋
|
| 108 |
grade_options = ["์ด๋ฑํ๊ต 1ํ๋
", "์ด๋ฑํ๊ต 2ํ๋
", "์ด๋ฑํ๊ต 3ํ๋
", "์ด๋ฑํ๊ต 4ํ๋
", "์ด๋ฑํ๊ต 5ํ๋
", "์ด๋ฑํ๊ต 6ํ๋
"]
|
| 109 |
grade_selected = st.selectbox("ํ๋
์ ํ", grade_options, index=0)
|
| 110 |
+
grade = grade_options.index(grade_selected) + 1
|
| 111 |
|
| 112 |
achievement_standard = st.text_area("์ฑ์ทจ๊ธฐ์ค ๋ฐ ์ฃผ์ ๋ด์ฉ ์
๋ ฅ", height=200)
|
| 113 |
+
|
| 114 |
+
generate_button = st.button("๊ต์ก๊ณผ์ ์์ฑ") # ๋ฒํผ ๋ณ์ ์ ์ฅ
|
| 115 |
|
| 116 |
+
# ์์ฑ ๋ฒํผ ํด๋ฆญ์ ๋์ (if๋ฌธ ๋ฐ์ผ๋ก ์ด๋)
|
| 117 |
+
if generate_button and achievement_standard:
|
| 118 |
+
result = generate_curriculum(grade, achievement_standard)
|
| 119 |
+
st.session_state.generated_curriculum = result
|
| 120 |
+
elif generate_button and not achievement_standard:
|
| 121 |
+
st.warning("์ฑ์ทจ๊ธฐ์ค ๋ฐ ์ฃผ์ ๋ด์ฉ์ ์
๋ ฅํ์ธ์.")
|
| 122 |
|
| 123 |
|
| 124 |
+
# ์ถ๋ ฅ ์์ญ (ํญ ์ถ๊ฐ, ๋ค์ด๋ก๋ ๋ฒํผ ์ถ๊ฐ)
|
| 125 |
if "generated_curriculum" in st.session_state:
|
| 126 |
+
tab1, tab2 = st.tabs(["๊ฒฐ๊ณผ ๋ณด๊ธฐ", "๊ฒฐ๊ณผ ๋ค์ด๋ก๋"])
|
| 127 |
+
|
| 128 |
+
with tab1:
|
| 129 |
+
st.text_area("๊ฐ๋
๊ธฐ๋ฐ ๊ต์ก๊ณผ์ ", value=st.session_state.generated_curriculum, height=600)
|
| 130 |
+
st.button("๊ฒฐ๊ณผ ๋ณต์ฌ", on_click=lambda: st.experimental_set_query_params(copied=st.session_state.generated_curriculum))
|
| 131 |
+
if st.experimental_get_query_params().get("copied"):
|
| 132 |
+
st.success("๊ฒฐ๊ณผ๊ฐ ๋ณต์ฌ๋์์ต๋๋ค!")
|
| 133 |
+
|
| 134 |
+
with tab2:
|
| 135 |
+
st.download_button(
|
| 136 |
+
label="ํ
์คํธ ํ์ผ ๋ค์ด๋ก๋",
|
| 137 |
+
data=st.session_state.generated_curriculum,
|
| 138 |
+
file_name="generated_curriculum.txt",
|
| 139 |
+
mime="text/plain",
|
| 140 |
+
)
|