HaveAI commited on
Commit
640422d
·
verified ·
1 Parent(s): 649ba78

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -29
app.py CHANGED
@@ -1,58 +1,54 @@
1
  import gradio as gr
2
 
3
- # Системна інструкція
4
- SYSTEM_PROMPT = "Твоє ім'я — Flare. Ти персональний ШІ-помічник. Відповідай українською мовою у ввічливому та дружньому стилі."
5
 
6
- # Налаштування кольорів (Чорний, Синій, Жовтий)
7
  theme = gr.themes.Soft(
8
  primary_hue="blue",
9
  secondary_hue="yellow",
10
  neutral_hue="slate",
11
  ).set(
12
- body_background_fill="*neutral_950", # Глибокий чорний
13
- block_background_fill="*neutral_900", # Темно-сірі блоки
14
  button_primary_background_fill="#0057B7", # Синій (UA Blue)
15
  button_primary_text_color="white",
16
- block_title_text_color="#FFD700", # Жовті заголовки (UA Gold)
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
- # Навчаємо модель пам'ятати історію та тримати образ "Flare"
31
- prompt = f"Системна інструкція: {SYSTEM_PROMPT}\n\n"
 
 
 
32
  for human, ai in history:
33
- prompt += f"Користувач: {human}\nFlare: {ai}\n"
34
- prompt += f"Користувач: {message}\nFlare:"
35
 
36
- # Викликаємо модель
37
- response = client(prompt)
38
- return response
39
 
40
- # Створюємо блоки
41
  with gr.Blocks(fill_height=True) as demo:
42
  with gr.Sidebar():
43
  gr.Markdown("# FlareAI")
44
- gr.Markdown("### Flare — твій персональний помічник")
45
- gr.Markdown("---")
46
  button = gr.LoginButton("Увійти")
47
- gr.Markdown("🇺🇦 Зроблено з повагою до кольорів свободи.")
 
48
 
49
- # У Gradio 6 прибрано параметри кастомних кнопок. Залишаємо чистий та робочий функціонал
50
  gr.ChatInterface(
51
  predict,
52
- chatbot=gr.Chatbot(label="Чат з Flare", show_label=False, height=600),
53
- textbox=gr.Textbox(placeholder="Напишіть повідомлення для Flare...", container=False, scale=7),
54
  )
55
 
56
  if __name__ == "__main__":
57
- # Тема та стилі тепер живуть тільки в launch()
58
  demo.launch(theme=theme, css=css)
 
1
  import gradio as gr
2
 
3
+ # 1. Твоя системна інструкція для Flare
4
+ SYSTEM_PROMPT = "Твоє ім'я — Flare. Ти персональний ШІ-помічник. Відповідай українською мовою."
5
 
6
+ # 2. Дизайн: Синій, Жовтий, Чорний
7
  theme = gr.themes.Soft(
8
  primary_hue="blue",
9
  secondary_hue="yellow",
10
  neutral_hue="slate",
11
  ).set(
12
+ body_background_fill="*neutral_950", # Чорний фон
13
+ block_background_fill="*neutral_900", # Темні блоки
14
  button_primary_background_fill="#0057B7", # Синій (UA Blue)
15
  button_primary_text_color="white",
16
+ block_title_text_color="#FFD700", # Жовтий текст (UA Gold)
17
  input_background_fill="*neutral_800",
18
  )
19
 
20
+ css = "footer {visibility: hidden} h1 {color: #FFD700 !important;}"
 
 
 
 
 
 
 
21
 
22
+ # Функція для роботи чату (замість gr.load)
23
  def predict(message, history):
24
+ # Підключаємо модель через провайдера novita (як у тебе в коді)
25
+ client = gr.load("models/moonshotai/Kimi-K2-Thinking", provider="novita")
26
+
27
+ # Формуємо запит так, щоб модель знала, що вона Flare
28
+ full_prompt = f"System: {SYSTEM_PROMPT}\n"
29
  for human, ai in history:
30
+ full_prompt += f"User: {human}\nAssistant: {ai}\n"
31
+ full_prompt += f"User: {message}\nAssistant:"
32
 
33
+ return client(full_prompt)
 
 
34
 
35
+ # ТВОЯ СТРУКТУРА КОДУ:
36
  with gr.Blocks(fill_height=True) as demo:
37
  with gr.Sidebar():
38
  gr.Markdown("# FlareAI")
39
+ gr.Markdown("Flare — твій персональний помічник")
40
+ # Твоя кнопка
41
  button = gr.LoginButton("Увійти")
42
+ gr.Markdown("---")
43
+ gr.Markdown("🇺🇦 Український інтерфейс")
44
 
45
+ # Твій чат (адаптований під Gradio 6)
46
  gr.ChatInterface(
47
  predict,
48
+ chatbot=gr.Chatbot(label="Чат Flare", show_label=False, height=600),
49
+ textbox=gr.Textbox(placeholder="Запитай Flare про що завгодно...", container=False, scale=7),
50
  )
51
 
52
  if __name__ == "__main__":
53
+ # У Gradio 6 theme та css передаються сюди
54
  demo.launch(theme=theme, css=css)