Xyro123 commited on
Commit
c8e026a
·
verified ·
1 Parent(s): 8134520

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -40
app.py CHANGED
@@ -3,22 +3,16 @@ import google.generativeai as genai
3
  import os
4
 
5
  # ----------------- ТОХИРГОО -----------------
6
- # ЧУХАЛ: API түлхүүрээ орчны хувьсагч (environment variable) болгож тохируулна уу.
7
- # Google AI Studio-с API түлхүүрээ авна уу: https://aistudio.google.com/app/apikey
8
- #
9
- # Терминал дээрээ дараах байдлаар тохируулж болно:
10
- # export GOOGLE_API_KEY="ЭНД_API_ТҮЛХҮҮРЭЭ_ОРУУЛНА_УУ"
11
-
12
  try:
13
  genai.configure(api_key=os.environ["GOOGLE_API_KEY"])
14
  except KeyError:
15
  print("АЛДАА: GOOGLE_API_KEY орчны хувьсагч тохируулагдаагүй байна.")
16
- # Хэрэв түлхүүр байхгүй бол Gradio интерфэйс дээр алдаа харуулна
17
  api_key_set = False
18
  else:
19
  api_key_set = True
20
 
21
- # Аюулгүй байдлын тохиргоог зөөлрүүлэх (зарим тохиолдолд хариулт блоклогдохоос сэргийлнэ)
22
  safety_settings = [
23
  {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"},
24
  {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
@@ -26,27 +20,23 @@ safety_settings = [
26
  {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"},
27
  ]
28
 
29
- # Gemini Pro загварыг сонгох
30
  model = genai.GenerativeModel('gemini-pro', safety_settings=safety_settings)
31
 
32
- # Чатны түүхийг хадгалах (Gradio-ийн session state)
33
  chat = model.start_chat(history=[])
34
 
35
  # ----------------- GRADIO ФУНКЦ -----------------
36
  def gemini_chat(message, history):
37
  """
38
- Gradio чатны интерфэйст зориулсан функц.
39
- Хэрэглэгчийн зурвасыг Gemini API руу илгээж, хариултыг нь буцаана.
40
  """
41
  if not api_key_set:
42
- yield "АЛДАА: Google API түлхүүр тохируулагдаагүй байна. Програмыг унтрааж, API түлхүүрээ тохируулаад дахин ажиллуулна уу."
43
  return
44
 
45
  try:
46
- # Mesasge-ийг загвар луу илгээнэ
47
  response = chat.send_message(message, stream=True)
48
-
49
- # Хариултыг хэсэгчлэн (stream) авах
50
  full_response = ""
51
  for chunk in response:
52
  full_response += chunk.text
@@ -55,36 +45,30 @@ def gemini_chat(message, history):
55
  except Exception as e:
56
  yield f"Алдаа гарлаа: {e}"
57
 
58
-
59
  # ----------------- GRADIO ИНТЕРФЕЙС -----------------
60
  with gr.Blocks(theme=gr.themes.Soft(), title="Gemini Chat") as demo:
61
  gr.Markdown(
62
  """
63
- # Gemini Chat 🤖
64
- Энэ бол Google-ийн Gemini Pro загварыг ашигласан чатбот юм.
65
- """
66
  )
67
- # ChatGPT-тэй ижил дизайнтай чат интерфэйс
68
- chatbot = gr.ChatInterface(
69
- fn=gemini_chat,
70
- chatbot=gr.Chatbot(
71
- height=600,
72
- show_label=False,
73
- avatar_images=(None, "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"),
74
- ),
75
- textbox=gr.Textbox(
76
- placeholder="Энд бичнэ үү...",
77
- container=False,
78
- scale=7,
79
- ),
80
- title=None,
81
- submit_btn="Илгээх",
82
- retry_btn=None,
83
- undo_btn="Буцаах",
84
- clear_btn="Цэвэрлэх",
85
  )
86
 
 
 
 
 
 
 
87
  # ----------------- АЖИЛЛУУЛАХ -----------------
88
  if __name__ == "__main__":
89
- # Gradio аппликейшнийг ажиллуулах
90
- demo.launch(debug=True)
 
3
  import os
4
 
5
  # ----------------- ТОХИРГОО -----------------
6
+ # API түлхүүрийг орчны хувьсагч болгож өгнө
 
 
 
 
 
7
  try:
8
  genai.configure(api_key=os.environ["GOOGLE_API_KEY"])
9
  except KeyError:
10
  print("АЛДАА: GOOGLE_API_KEY орчны хувьсагч тохируулагдаагүй байна.")
 
11
  api_key_set = False
12
  else:
13
  api_key_set = True
14
 
15
+ # Аюулгүй байдлын тохиргоо
16
  safety_settings = [
17
  {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"},
18
  {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
 
20
  {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"},
21
  ]
22
 
23
+ # Gemini Pro загвар сонгох
24
  model = genai.GenerativeModel('gemini-pro', safety_settings=safety_settings)
25
 
26
+ # Чатны түүхийг хадгалах
27
  chat = model.start_chat(history=[])
28
 
29
  # ----------------- GRADIO ФУНКЦ -----------------
30
  def gemini_chat(message, history):
31
  """
32
+ Gradio чат интерфэйст зориулсан функц
 
33
  """
34
  if not api_key_set:
35
+ yield "АЛДАА: Google API түлхүүр тохируулагдаагүй байна. Програмыг унтрааж, API түлхүүрээ тохируулна уу."
36
  return
37
 
38
  try:
 
39
  response = chat.send_message(message, stream=True)
 
 
40
  full_response = ""
41
  for chunk in response:
42
  full_response += chunk.text
 
45
  except Exception as e:
46
  yield f"Алдаа гарлаа: {e}"
47
 
 
48
  # ----------------- GRADIO ИНТЕРФЕЙС -----------------
49
  with gr.Blocks(theme=gr.themes.Soft(), title="Gemini Chat") as demo:
50
  gr.Markdown(
51
  """
52
+ # Gemini Chat 🤖
53
+ Энэ бол Google-ийн Gemini Pro загварыг ашигласан чатбот юм.
54
+ """
55
  )
56
+
57
+ chatbot = gr.Chatbot(height=600, show_label=False,
58
+ avatar_images=(None, "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"))
59
+
60
+ msg = gr.Textbox(
61
+ placeholder="Энд бичнэ үү...",
62
+ container=False,
63
+ scale=7,
 
 
 
 
 
 
 
 
 
 
64
  )
65
 
66
+ clear_btn = gr.Button("Цэвэрлэх")
67
+
68
+ # Функцуудийг холбох
69
+ msg.submit(gemini_chat, [msg, chatbot], [msg, chatbot])
70
+ clear_btn.click(lambda: None, None, chatbot, queue=False)
71
+
72
  # ----------------- АЖИЛЛУУЛАХ -----------------
73
  if __name__ == "__main__":
74
+ demo.launch(server_name="0.0.0.0", server_port=7860, debug=True)