Update app.py
Browse files
app.py
CHANGED
|
@@ -1,10 +1,10 @@
|
|
| 1 |
import os
|
| 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"])
|
|
@@ -14,7 +14,7 @@ generation_config = {
|
|
| 14 |
"temperature": 0.7,
|
| 15 |
"top_p": 0.85,
|
| 16 |
"top_k": 40,
|
| 17 |
-
"max_output_tokens":
|
| 18 |
"response_mime_type": "text/plain",
|
| 19 |
}
|
| 20 |
|
|
@@ -72,6 +72,9 @@ SYSTEM_PROMPT = """
|
|
| 72 |
ν΅μ¬ κ°λ
κ³Ό κ΄λ ¨λ μ€μν μ¬λ‘λ₯Ό μ μνμ¬ νμ΅μ μλ―Έμ κ΄λ ¨μ±μ λμ΄λ λ°©μμ μ μνμΈμ. λ©ν°λ―Έλμ΄, μκ° μλ£, κ²μ, νλ ₯ νμ΅ λ± λ€μν κ΅μλ²μ νμ©νλ λ°©μμ μ μνμΈμ.
|
| 73 |
"""
|
| 74 |
|
|
|
|
|
|
|
|
|
|
| 75 |
def generate_curriculum(grade, achievement_standard):
|
| 76 |
"""νλ
κ³Ό μ±μ·¨κΈ°μ€μ μ
λ ₯λ°μ κ°λ
κΈ°λ° κ΅μ‘κ³Όμ μ μμ±ν©λλ€."""
|
| 77 |
|
|
@@ -82,14 +85,17 @@ def generate_curriculum(grade, achievement_standard):
|
|
| 82 |
"κ°λ
κΈ°λ° κ΅μ‘κ³Όμ :",
|
| 83 |
]
|
| 84 |
|
| 85 |
-
full_text = ""
|
| 86 |
-
|
| 87 |
-
|
| 88 |
try:
|
| 89 |
response = model.generate_content(prompt, stream=True)
|
| 90 |
for chunk in response:
|
| 91 |
full_text += chunk.text
|
| 92 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 93 |
except Exception as e:
|
| 94 |
st.error(f"μλ¬ λ°μ: {str(e)}")
|
| 95 |
return ""
|
|
@@ -115,8 +121,6 @@ with st.sidebar.expander("μ
λ ₯ μ€μ ", expanded=True):
|
|
| 115 |
|
| 116 |
generate_button = st.button("κ°λ
κΈ°λ° κ΅μ‘κ³Όμ μμ±")
|
| 117 |
|
| 118 |
-
# λ¨μΌ μΆλ ₯ μμμ μ μ§νκ³ , νμν κ²½μ°μλ§ κ°±μ
|
| 119 |
-
output_area = st.empty() # μΆλ ₯ μμμ ν¨μ λ°μΌλ‘ μ΄λνμ¬ μ μμΌλ‘ μ μ
|
| 120 |
|
| 121 |
if generate_button and achievement_standard:
|
| 122 |
result = generate_curriculum(grade, achievement_standard)
|
|
@@ -126,4 +130,5 @@ elif generate_button and not achievement_standard:
|
|
| 126 |
|
| 127 |
# μ΄λ―Έ μμ±λ κ΅μ‘κ³Όμ μ΄ μμ κ²½μ° μ΄λ₯Ό μΆλ ₯
|
| 128 |
if "generated_curriculum" in st.session_state and st.session_state.generated_curriculum:
|
| 129 |
-
|
|
|
|
|
|
| 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 ν€ μ€μ
|
| 10 |
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
|
|
|
|
| 14 |
"temperature": 0.7,
|
| 15 |
"top_p": 0.85,
|
| 16 |
"top_k": 40,
|
| 17 |
+
"max_output_tokens": 25000,
|
| 18 |
"response_mime_type": "text/plain",
|
| 19 |
}
|
| 20 |
|
|
|
|
| 72 |
ν΅μ¬ κ°λ
κ³Ό κ΄λ ¨λ μ€μν μ¬λ‘λ₯Ό μ μνμ¬ νμ΅μ μλ―Έμ κ΄λ ¨μ±μ λμ΄λ λ°©μμ μ μνμΈμ. λ©ν°λ―Έλμ΄, μκ° μλ£, κ²μ, νλ ₯ νμ΅ λ± λ€μν κ΅μλ²μ νμ©νλ λ°©μμ μ μνμΈμ.
|
| 73 |
"""
|
| 74 |
|
| 75 |
+
# μΆλ ₯ μμμ ν¨μ μΈλΆμ μ μ
|
| 76 |
+
output_area = st.empty()
|
| 77 |
+
|
| 78 |
def generate_curriculum(grade, achievement_standard):
|
| 79 |
"""νλ
κ³Ό μ±μ·¨κΈ°μ€μ μ
λ ₯λ°μ κ°λ
κΈ°λ° κ΅μ‘κ³Όμ μ μμ±ν©λλ€."""
|
| 80 |
|
|
|
|
| 85 |
"κ°λ
κΈ°λ° κ΅μ‘κ³Όμ :",
|
| 86 |
]
|
| 87 |
|
| 88 |
+
full_text = "" # μ 체 ν
μ€νΈ μ μ₯ λ³μ μ΄κΈ°ν
|
| 89 |
+
|
|
|
|
| 90 |
try:
|
| 91 |
response = model.generate_content(prompt, stream=True)
|
| 92 |
for chunk in response:
|
| 93 |
full_text += chunk.text
|
| 94 |
+
# Markdown to HTML λ³ν
|
| 95 |
+
html_text = markdown.markdown(full_text, extensions=['tables'])
|
| 96 |
+
output_area.markdown(html_text, unsafe_allow_html=True)
|
| 97 |
+
time.sleep(0.1) # μ§μ° μΆκ° (νμμ λ°λΌ μ‘°μ )
|
| 98 |
+
|
| 99 |
except Exception as e:
|
| 100 |
st.error(f"μλ¬ λ°μ: {str(e)}")
|
| 101 |
return ""
|
|
|
|
| 121 |
|
| 122 |
generate_button = st.button("κ°λ
κΈ°λ° κ΅μ‘κ³Όμ μμ±")
|
| 123 |
|
|
|
|
|
|
|
| 124 |
|
| 125 |
if generate_button and achievement_standard:
|
| 126 |
result = generate_curriculum(grade, achievement_standard)
|
|
|
|
| 130 |
|
| 131 |
# μ΄λ―Έ μμ±λ κ΅μ‘κ³Όμ μ΄ μμ κ²½μ° μ΄λ₯Ό μΆλ ₯
|
| 132 |
if "generated_curriculum" in st.session_state and st.session_state.generated_curriculum:
|
| 133 |
+
html_text = markdown.markdown(st.session_state.generated_curriculum, extensions=['tables'])
|
| 134 |
+
output_area.markdown(html_text, unsafe_allow_html=True)
|