Spaces:
Paused
Paused
File size: 3,265 Bytes
1d355ad fabb74d bf63def 22032f3 bf63def 1d355ad bf63def 22032f3 fabb74d b05b815 1a23725 6c63571 fabb74d 13b59d8 fabb74d bf63def fabb74d 4c541d4 fabb74d 4c541d4 fabb74d 4c541d4 fabb74d 217a78d bf63def fabb74d 4c541d4 fabb74d feb03cf fabb74d 940b028 bf63def 4c541d4 bf63def 39688bd 03d0703 bf63def |
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 |
import os
import time
import streamlit as st
import google.generativeai as genai
from streamlit_extras.colored_header import colored_header
from streamlit_extras.add_vertical_space import add_vertical_space
import markdown
# Google Gemini API Key μ€μ
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
# λͺ¨λΈ μ€μ
generation_config = {
"temperature": 1,
"top_p": 0.95,
"top_k": 40,
"max_output_tokens": 8192,
"response_mime_type": "text/plain",
}
model = genai.GenerativeModel(
model_name="gemini-2.0-flash",
generation_config=generation_config,
)
def generate_lesson_plan(achievement_standard):
"""
νλ 컨μ
μ μ
λ ₯λ°μ νλμ μμ±ν©λλ€.
μμνμ μ€μκ°μΌλ‘ μΆλ ₯ν©λλ€.
Args:
achievement_standard (str): νλ 컨μ
Returns:
str: μμ±λ νλ
"""
SYSTEM_PROMPT = """
λΉμ μ κ΅μνμ΅ νλ μ€κ³ μ λ¬Έκ°, κ΅κ³Όκ΅μ‘ λ΄μ© μ λ¬Έκ°, κ΅μ‘곡νμμ
λλ€.
μ μλλ€μ΄ νλ 컨μ
λ° μκ°λ₯Ό μ
λ ₯νλ©΄ νλμ μμΈνκ² μ€λͺ
ν΄μ£ΌμΈμ..
λ€μμ νλ μ€κ³μ νμν μ 보μ
λλ€.
**νλ κ΅¬μ± μμ:**
1. νλ 컨μ
λ° μκ°
2. νλ λͺ©ν
3. νλ λ¨κ³λ³ μλ΄
- 1λ¨κ³: 1λ¨κ³ νλ μλ΄
- 2λ¨κ³: 2λ¨κ³ νλ μλ΄
- 3λ¨κ³: 3λ¨κ³ νλ μλ΄
- 4λ¨κ³: 4λ¨κ³ νλ μλ΄...
4. νλ μ€λΉλ¬Ό λ° κΈ°κ΅¬
5. νλμ μν μλ£
- νλμ νμν μλ£
- μΆκ° μΆμ² μλ£
6. νλμ μ μμ
- νμ μ
μ₯ μ μμ
- κ΅μ¬ μ
μ₯ μ μμ
7. νμμκ² μ 곡ν νλ μλ΄ μλ£
* νλ μλ΄ μλ£λ μ΄λ±νμμ΄ μ΄ν΄ν μ μλλ‘ μ΅λν ꡬ체μ μ΄κ³ , λ¨κ³μ , λͺ
μμ μΌλ‘ μλ΄ν΄μ£ΌμΈμ.
"""
prompt = [
SYSTEM_PROMPT,
f"**νλ 컨μ
:** {achievement_standard}",
"**νλ:**",
]
response = model.generate_content(prompt, stream=True)
collected_text = ""
for token in response:
chunk = token.text
collected_text += chunk
yield collected_text # μ€μκ° μΆλ ₯μ μν΄ yield μ¬μ©
time.sleep(0.03) # μΆλ ₯ μλ μ‘°μ
# Streamlit Interface
colored_header(
label="νμ΅ νλ μ€κ³ λμ°λ―Έ",
description="μ μλμ΄ νλμ 컨μ
μ μ
λ ₯νμλ©΄ νλμ ꡬ체μ μΌλ‘ μ€κ³ν΄μ€λλ€.",
color_name="red-70",
)
add_vertical_space(1)
achievement_standard = st.text_area("νλ 컨μ
λ° μκ° μ
λ ₯", height=100)
generate_button = st.button("νμ΅ νλ μμ±")
# μΆλ ₯ μμ μ μ
output_area = st.empty()
if generate_button and achievement_standard:
output_text = ""
output_area.markdown(output_text)
try:
for partial_output in generate_lesson_plan(achievement_standard):
output_text = partial_output
output_area.markdown(output_text)
except Exception as e:
st.error(f"μ€λ₯κ° λ°μνμ΅λλ€: {str(e)}")
# λ³΅μ¬ λ²νΌ μΆκ°
if output_text:
if st.button("μΆλ ₯ λ΄μ© 볡μ¬"):
st.write(output_text)
st.success("μΆλ ₯ λ΄μ©μ΄ 볡μ¬λμμ΅λλ€!") |