HaveAI commited on
Commit
c1bf4fa
·
verified ·
1 Parent(s): 835409a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -6
app.py CHANGED
@@ -1,10 +1,63 @@
1
  import gradio as gr
2
 
3
- with gr.Blocks(fill_height=True) as demo:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  with gr.Sidebar():
5
  gr.Markdown("# FlareAI")
6
- gr.Markdown("Flare - your personal assistant")
7
- button = gr.LoginButton("Sign in")
8
- gr.load("models/moonshotai/Kimi-K2-Thinking", accept_token=button, provider="novita")
9
-
10
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ 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 твій персональний помічник")
45
+ gr.Markdown("---")
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="Зупинити",
56
+ retry_btn="Повторити",
57
+ undo_btn="Відмінити",
58
+ clear_btn="Очистити",
59
+ additional_inputs=None,
60
+ )
61
+
62
+ if __name__ == "__main__":
63
+ demo.launch()