Update app.py
Browse files
app.py
CHANGED
|
@@ -2,56 +2,47 @@ import os
|
|
| 2 |
import streamlit as st
|
| 3 |
import google.generativeai as genai
|
| 4 |
|
| 5 |
-
# Gemini API
|
| 6 |
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
|
| 7 |
|
| 8 |
# 모델 설정
|
| 9 |
generation_config = {
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
}
|
| 16 |
|
| 17 |
model = genai.GenerativeModel(
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
)
|
| 22 |
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
-
#
|
| 25 |
st.title("AI 튜터 챗봇")
|
| 26 |
|
| 27 |
-
# 채팅
|
| 28 |
if "messages" not in st.session_state:
|
| 29 |
st.session_state.messages = []
|
| 30 |
|
| 31 |
-
# 채팅 기록 표시
|
| 32 |
for message in st.session_state.messages:
|
| 33 |
-
|
| 34 |
-
st.
|
| 35 |
-
else:
|
| 36 |
-
st.chat_message("assistant").write(message["content"])
|
| 37 |
|
| 38 |
# 사용자 입력 받기
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
# 채팅 기록에 사용자 입력 추가
|
| 44 |
-
st.session_state.messages.append({"role": "user", "content": user_input})
|
| 45 |
-
st.chat_message("user").write(user_input)
|
| 46 |
-
|
| 47 |
|
| 48 |
# Gemini API 호출
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
response = chat_session.send_message(user_input)
|
| 54 |
-
|
| 55 |
-
# 응답 처리 및 채팅 기록에 추가
|
| 56 |
-
st.session_state.messages.append({"role": "assistant", "content": response.text})
|
| 57 |
-
st.chat_message("assistant").write(response.text)
|
|
|
|
| 2 |
import streamlit as st
|
| 3 |
import google.generativeai as genai
|
| 4 |
|
| 5 |
+
# Gemini API 설정
|
| 6 |
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
|
| 7 |
|
| 8 |
# 모델 설정
|
| 9 |
generation_config = {
|
| 10 |
+
"temperature": 0.5,
|
| 11 |
+
"top_p": 0.95,
|
| 12 |
+
"top_k": 64,
|
| 13 |
+
"max_output_tokens": 8192,
|
| 14 |
+
"response_mime_type": "text/plain",
|
| 15 |
}
|
| 16 |
|
| 17 |
model = genai.GenerativeModel(
|
| 18 |
+
model_name="learnlm-1.5-pro-experimental",
|
| 19 |
+
generation_config=generation_config,
|
| 20 |
+
system_instruction="친절하고 든든한 튜터가 되어 학생이 목표를 달성하도록 안내하고, 학생이 주제에서 벗어나면 부드럽게 다시 집중하도록 도와주세요. 학생이 큰 개념을 단계적으로 이해하도록 돕는 질문을 하고, 그 개념을 깊이 파고들 수 있도록 탐구 질문을 던지세요. 학생이 부담을 느끼지 않도록 한 번에 한 질문만 하세요. 학생이 이해한 것을 보여주면 대화를 마무리하세요.",
|
| 21 |
)
|
| 22 |
|
| 23 |
+
# 채팅 세션 초기화
|
| 24 |
+
if "chat_session" not in st.session_state:
|
| 25 |
+
st.session_state.chat_session = model.start_chat(history=[])
|
| 26 |
|
| 27 |
+
# 스트림릿 UI 설정
|
| 28 |
st.title("AI 튜터 챗봇")
|
| 29 |
|
| 30 |
+
# 채팅 메시지 표시
|
| 31 |
if "messages" not in st.session_state:
|
| 32 |
st.session_state.messages = []
|
| 33 |
|
|
|
|
| 34 |
for message in st.session_state.messages:
|
| 35 |
+
with st.chat_message(message["role"]):
|
| 36 |
+
st.markdown(message["content"])
|
|
|
|
|
|
|
| 37 |
|
| 38 |
# 사용자 입력 받기
|
| 39 |
+
if prompt := st.chat_input("학습 내용을 입력하면 AI 튜터가 질문을 통해서 개념을 이해하도록 도와줍니다."):
|
| 40 |
+
st.session_state.messages.append({"role": "user", "content": prompt})
|
| 41 |
+
with st.chat_message("user"):
|
| 42 |
+
st.markdown(prompt)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
|
| 44 |
# Gemini API 호출
|
| 45 |
+
response = st.session_state.chat_session.send_message(prompt)
|
| 46 |
+
with st.chat_message("assistant"):
|
| 47 |
+
st.markdown(response.text)
|
| 48 |
+
st.session_state.messages.append({"role": "assistant", "content": response.text})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|