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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -39
app.py CHANGED
@@ -2,63 +2,56 @@ import os
2
  import streamlit as st
3
  import google.generativeai as genai
4
 
5
- # Hugging Face Spaces에서 환경 변수 설정 필요
6
  genai.configure(api_key=os.environ["GEMINI_API_KEY"])
7
 
8
  # 모델 설정
9
  generation_config = {
10
- "temperature": 1,
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="교사가 학 목표를 입력, 학생학습 목표에 도달할 있게 질문을 계줘, \n학생들은 질문에 답 것이야. 러면 바로 답제시하지 고 질문형태로 피드백해줘. \n 질문 통해서 학생스스로 학습 목표도달할 수 있도록 도와줘.",
21
  )
22
 
23
 
24
- # Streamlit 앱 설정
25
- st.set_page_config(page_title="질문하는 AI 선생님", layout="centered")
26
 
27
- st.markdown(
28
- """
29
- <div style='font-size: 30px; font-weight: bold; text-align: center;'>질문하는 AI 선생님</div>
30
- <div style='text-align: center; margin-bottom: 20px;'>학습주제를 입력하면, AI가 끊임 없는 질문을 통해 스스로 학습하게 도와줍니다.</div>
31
- """,
32
- unsafe_allow_html=True
33
- )
34
-
35
- # 세션 상태 초기화 (채팅 기록 저장)
36
  if "messages" not in st.session_state:
37
  st.session_state.messages = []
38
 
39
- # 학습 목표 입력
40
- learning_objective = st.text_input("학습 목표를 입력하세요:")
41
- if learning_objective and st.session_state.messages == []:
42
- st.session_state.messages.append({"role": "user", "content": learning_objective})
43
-
44
  # 채팅 기록 표시
45
  for message in st.session_state.messages:
46
- with st.chat_message(message["role"]):
47
- st.markdown(message["content"])
 
 
48
 
49
  # 사용자 입력 받기
50
- if prompt := st.chat_input("질문 또는 답변을 입력하세요:"):
51
- st.session_state.messages.append({"role": "user", "content": prompt})
52
-
53
- with st.chat_message("assistant"):
54
- full_response = ""
55
- placeholder = st.empty() # 텍스트 업데이트를 위한 placeholder
 
56
 
57
- chat_session = model.start_chat(history=st.session_state.messages[:-1])
58
- response = chat_session.send_message_streaming(prompt)
59
 
60
- for chunk in response:
61
- full_response += chunk.text
62
- placeholder.markdown(full_response) # 실시간 업데이트
 
 
 
63
 
64
- st.session_state.messages.append({"role": "assistant", "content": full_response})
 
 
 
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)