ll7098ll commited on
Commit
d80a533
ยท
verified ยท
1 Parent(s): db4f1bb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -16
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
- st.title("๊ฐœ๋…๊ธฐ๋ฐ˜ ๊ต์œก๊ณผ์ • ์„ค๊ณ„ ๋„์šฐ๋ฏธ")
97
- st.write("์ดˆ๋“ฑํ•™๊ต ๊ต์œก๊ณผ์ •์— ๋งž๋Š” ๊ฐœ๋…๊ธฐ๋ฐ˜ ๊ต์œก๊ณผ์ •์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.")
 
 
 
 
 
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
- if st.button("๊ต์œก๊ณผ์ • ์ƒ์„ฑ"):
108
- if achievement_standard: # ์ž…๋ ฅ ํ™•์ธ
109
- result = generate_curriculum(grade, achievement_standard)
110
- st.session_state.generated_curriculum = result # ๊ฒฐ๊ณผ๋ฅผ ์„ธ์…˜ ์ƒํƒœ์— ์ €์žฅ
111
- else:
112
- st.warning("์„ฑ์ทจ๊ธฐ์ค€ ๋ฐ ์ฃผ์š” ๋‚ด์šฉ์„ ์ž…๋ ฅํ•˜์„ธ์š”.")
113
 
114
 
115
- # ์ถœ๋ ฅ ์˜์—ญ (๋ณต์‚ฌ ๋ฒ„ํŠผ ํฌํ•จ)
116
  if "generated_curriculum" in st.session_state:
117
- st.text_area("๊ฐœ๋…๊ธฐ๋ฐ˜ ๊ต์œก๊ณผ์ •", value=st.session_state.generated_curriculum, height=600)
118
- st.button("๊ฒฐ๊ณผ ๋ณต์‚ฌ", on_click=lambda: st.experimental_set_query_params(copied=st.session_state.generated_curriculum))
119
- if st.experimental_get_query_params().get("copied"):
120
- st.success("๊ฒฐ๊ณผ๊ฐ€ ๋ณต์‚ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!")
 
 
 
 
 
 
 
 
 
 
 
 
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
+ )