HaveAI commited on
Commit
691a822
·
verified ·
1 Parent(s): c1bf4fa

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -10
app.py CHANGED
@@ -3,7 +3,7 @@ import gradio as gr
3
  # Спеціальна системна інструкція, щоб ШІ знав своє ім'я
4
  SYSTEM_PROMPT = "Твоє ім'я — Flare. Ти персональний ШІ-помічник. Відповідай українською мовою у ввічливому та дружньому стилі."
5
 
6
- # Налаштування стилів (Чорний фон, Сині кнопки, Жовті акценти)
7
  theme = gr.themes.Soft(
8
  primary_hue="blue",
9
  secondary_hue="yellow",
@@ -17,28 +17,29 @@ theme = gr.themes.Soft(
17
  input_background_fill="*neutral_800",
18
  )
19
 
20
- # Додатковий CSS для тонкого налаштування кольорів
21
  css = """
22
  footer {visibility: hidden}
23
  h1 {color: #FFD700 !important;}
24
  .sidebar-text {color: #ffffff !important;}
25
  """
26
 
 
 
 
27
  def predict(message, history):
28
- # Додаємо системну інструкцію до контексту
29
  messages = [{"role": "system", "content": SYSTEM_PROMPT}]
30
  for human, ai in history:
31
  messages.append({"role": "user", "content": human})
32
  messages.append({"role": "assistant", "content": ai})
33
  messages.append({"role": "user", "content": message})
34
 
35
- # Виклик моделі через провайдера novita
36
- # Примітка: gr.load("models/...") у ChatInterface працює через функцію-обгортку
37
- client = gr.load("models/moonshotai/Kimi-K2-Thinking", provider="novita")
38
  response = client(message, history=history)
39
  return response
40
 
41
- with gr.Blocks(theme=theme, css=css, fill_height=True) as demo:
 
42
  with gr.Sidebar():
43
  gr.Markdown("# FlareAI")
44
  gr.Markdown("### Flare — твій персональний помічник")
@@ -46,10 +47,10 @@ with gr.Blocks(theme=theme, css=css, fill_height=True) as demo:
46
  button = gr.LoginButton("Увійти")
47
  gr.Markdown("🇺🇦 Зроблено з повагою до кольорів свободи.")
48
 
49
- # Створення чату
50
  gr.ChatInterface(
51
  predict,
52
- chatbot=gr.Chatbot(label="Чат з Flare", show_label=False, bubble_full_width=False, height=600),
53
  textbox=gr.Textbox(placeholder="Напишіть повідомлення для Flare...", container=False, scale=7),
54
  submit_btn="Надіслати",
55
  stop_btn="Зупинити",
@@ -60,4 +61,5 @@ with gr.Blocks(theme=theme, css=css, fill_height=True) as demo:
60
  )
61
 
62
  if __name__ == "__main__":
63
- demo.launch()
 
 
3
  # Спеціальна системна інструкція, щоб ШІ знав своє ім'я
4
  SYSTEM_PROMPT = "Твоє ім'я — Flare. Ти персональний ШІ-помічник. Відповідай українською мовою у ввічливому та дружньому стилі."
5
 
6
+ # Налаштування кольорів
7
  theme = gr.themes.Soft(
8
  primary_hue="blue",
9
  secondary_hue="yellow",
 
17
  input_background_fill="*neutral_800",
18
  )
19
 
 
20
  css = """
21
  footer {visibility: hidden}
22
  h1 {color: #FFD700 !important;}
23
  .sidebar-text {color: #ffffff !important;}
24
  """
25
 
26
+ # Завантажуємо модель один раз при запуску, щоб не перевантажувати пам'ять
27
+ client = gr.load("models/moonshotai/Kimi-K2-Thinking", provider="novita")
28
+
29
  def predict(message, history):
30
+ # Формуємо історію повідомлень із системною інструкцією
31
  messages = [{"role": "system", "content": SYSTEM_PROMPT}]
32
  for human, ai in history:
33
  messages.append({"role": "user", "content": human})
34
  messages.append({"role": "assistant", "content": ai})
35
  messages.append({"role": "user", "content": message})
36
 
37
+ # Викликаємо модель
 
 
38
  response = client(message, history=history)
39
  return response
40
 
41
+ # Створюємо інтерфейс без передачі theme та css сюди (вимога Gradio 6)
42
+ with gr.Blocks(fill_height=True) as demo:
43
  with gr.Sidebar():
44
  gr.Markdown("# FlareAI")
45
  gr.Markdown("### Flare — твій персональний помічник")
 
47
  button = gr.LoginButton("Увійти")
48
  gr.Markdown("🇺🇦 Зроблено з повагою до кольорів свободи.")
49
 
50
+ # Створення чату (прибрано bubble_full_width)
51
  gr.ChatInterface(
52
  predict,
53
+ chatbot=gr.Chatbot(label="Чат з Flare", show_label=False, height=600),
54
  textbox=gr.Textbox(placeholder="Напишіть повідомлення для Flare...", container=False, scale=7),
55
  submit_btn="Надіслати",
56
  stop_btn="Зупинити",
 
61
  )
62
 
63
  if __name__ == "__main__":
64
+ # У Gradio 6 theme та css передаються САМЕ ТУТ
65
+ demo.launch(theme=theme, css=css)