ll7098ll commited on
Commit
c7f7960
·
verified ·
1 Parent(s): 4790879

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -44
app.py CHANGED
@@ -1,68 +1,65 @@
1
  import os
2
  import time
3
- import gradio as gr
4
 
5
  import google.generativeai as genai
 
 
6
 
 
7
  genai.configure(api_key=os.environ["GEMINI_API_KEY"])
8
 
9
  # 모델 설정
10
  generation_config = {
11
- "temperature": 1,
12
  "top_p": 0.95,
13
  "top_k": 64,
14
- "max_output_tokens": 8192,
15
  "response_mime_type": "text/plain",
16
  }
 
 
 
 
 
17
 
18
- # 시스템 명령어 설정
19
- system_instruction = "언어 치료 전문가, 한글 교육 전문가, 한국어 발음 교정 전문가"
 
20
 
21
- def type_text(text):
22
- for char in text:
23
- print(char, end='', flush=True)
24
- time.sleep(0.03) # 타이핑 속도 조절
25
- print("\n") # 줄바꿈 추가
26
 
27
- def chat(message, history):
28
- # 새로운 상담 시작 시 기록 초기화
29
- if message == "/새로운 상담 시작":
30
- history = []
31
- return "새로운 상담을 시작합니다.", history
32
 
33
- # 모델 생성 및 채팅 세션 시작
34
- model = genai.GenerativeModel(
35
- model_name="gemini-1.5-pro",
36
- generation_config=generation_config,
37
- system_instruction=system_instruction,
38
- )
39
- chat_session = model.start_chat(history=history)
40
 
41
- # 사용자 메시지 추가
42
- history.append({"role": "user", "message": message})
43
 
44
- # AI 응답 생성 추가
45
- response = chat_session.send_message(message)
46
- history.append({"role": "assistant", "message": response.text})
 
47
 
48
- # 타이핑 효과 출력
49
- type_text(response.text)
50
 
51
- return "", history
 
 
 
 
 
 
 
52
 
53
  # Gradio 인터페이스 설정
54
- iface = gr.Interface(
55
- fn=chat,
56
- inputs=[
57
- gr.inputs.Textbox(lines=5, placeholder="문의 내용을 입력하세요."),
58
- gr.State([]),
59
- ],
60
- outputs=[
61
- gr.outputs.Textbox(label="AI 답변"),
62
- gr.State(),
63
- ],
64
- title="AI 언어 치료 상담 챗봇",
65
- description="언어 치료 전문가 AI와 상담해보세요. 새로운 상담을 시작하려면 '/새로운 상담 시작'을 입력하세요.",
66
- )
67
 
68
- iface.launch()
 
1
  import os
2
  import time
 
3
 
4
  import google.generativeai as genai
5
+ from google.generativeai.chat import ChatSession
6
+ import gradio as gr
7
 
8
+ # Google Gemini API 키 설정
9
  genai.configure(api_key=os.environ["GEMINI_API_KEY"])
10
 
11
  # 모델 설정
12
  generation_config = {
13
+ "temperature": 0.8,
14
  "top_p": 0.95,
15
  "top_k": 64,
16
+ "max_output_tokens": 1024,
17
  "response_mime_type": "text/plain",
18
  }
19
+ model = genai.GenerativeModel(
20
+ model_name="gemini-1.5-pro",
21
+ generation_config=generation_config,
22
+ system_instruction="""뛰어난 전문성을 갖춘 언어 치료 전문가, 한글 교육 전문가, 한국어 발음 교정 전문가로서 친절하고 공감하는 태도로 사용자와 상담을 진행하세요.""",
23
+ )
24
 
25
+ # 상담 내용 저장
26
+ chat_history = []
27
+ chat_session = None
28
 
 
 
 
 
 
29
 
30
+ def predict(message, history):
31
+ global chat_session
32
+ if chat_session is None:
33
+ chat_session = model.start_chat()
 
34
 
35
+ if message.strip() == "":
36
+ return history, ""
 
 
 
 
 
37
 
38
+ history = history + [[message, None]]
39
+ response = chat_session.send_message(message).text
40
 
41
+ # 타이핑 효과를 위해 글자씩 출력
42
+ for i in range(len(response) + 1):
43
+ time.sleep(0.03)
44
+ yield history + [[message, response[:i]]]
45
 
 
 
46
 
47
+ def new_session(chatbot, msg):
48
+ global chat_session, chat_history
49
+ chat_session = None
50
+ chat_history = []
51
+ chatbot = []
52
+ msg = ""
53
+ return chatbot, msg, "새로운 상담을 시작합니다."
54
+
55
 
56
  # Gradio 인터페이스 설정
57
+ with gr.Blocks() as demo:
58
+ chatbot = gr.Chatbot(label="채팅창")
59
+ msg = gr.Textbox(label="입력")
60
+ clear = gr.Button("초기화")
61
+
62
+ msg.submit(predict, [msg, chatbot], [chatbot, msg])
63
+ clear.click(new_session, [chatbot, msg], [chatbot, msg, msg])
 
 
 
 
 
 
64
 
65
+ demo.launch(share=True)