ll7098ll commited on
Commit
badf7af
·
verified ·
1 Parent(s): 8c2f011

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -33
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
- "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
- # Streamlit
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
- if message["role"] == "user":
34
- st.chat_message("user").write(message["content"])
35
- else:
36
- st.chat_message("assistant").write(message["content"])
37
 
38
  # 사용자 입력 받기
39
- user_input = st.chat_input("질문을 입력하세요.")
40
-
41
- # 사용자 입력 처리
42
- if user_input:
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
- chat_session = model.start_chat(
50
- history=st.session_state.messages
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})