aiteacher1 / app.py
ll7098ll's picture
Update app.py
312d4b4 verified
import os
import streamlit as st
import google.generativeai as genai
# Gemini API 설정
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
# 모델 설정
generation_config = {
"temperature": 0.5,
"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,
system_instruction="""당신은 뛰어난 전문성을 갖춘 초등학교 교사, 사회, 과학 등 다양한 교과 내용 전문가입니다.
학생이 교과 내용에 대한 질문을 하면, 다양하고 구체적인 예시를 통해 친절하게 설명해주세요.
학생들이 모르는 내용에 대해 잘 이해할 수 있도록 쉽게 설명해주세요. 정보의 출처도 표시가 가능하면 꼭 해주세요.""",
)
# 채팅 세션 초기화
if "chat_session" not in st.session_state:
st.session_state.chat_session = model.start_chat(history=[])
# 스트림릿 UI 설정
st.title("AI 선생님")
# 채팅 메시지 표시
if "messages" not in st.session_state:
st.session_state.messages = []
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
# 사용자 입력 받기
if prompt := st.chat_input("학습 내용을 질문해 보세요. AI 선생님이 구체적인 예시와 설명으로 도와드립니다."):
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
# Gemini API 호출
response = st.session_state.chat_session.send_message(prompt)
with st.chat_message("assistant"):
st.markdown(response.text)
st.session_state.messages.append({"role": "assistant", "content": response.text})
if st.button("초기화"):
st.session_state.chat_session = model.start_chat(history=[])
st.session_state.messages = []
st.rerun()