Rooni commited on
Commit
de9a652
·
verified ·
1 Parent(s): 883d054

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -4
app.py CHANGED
@@ -1,23 +1,36 @@
1
  import gradio as gr
2
  from gradio_client import Client
3
  import requests
 
4
 
5
  # Создаем клиент для взаимодействия с API
6
  client = Client("llamameta/Pixtral-Large-Instruct-2411")
7
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  def respond(
9
  message,
10
  history: list[tuple[str, str]],
11
- system_message,
12
  max_tokens,
13
  temperature,
14
  top_p,
15
  ):
16
  if not message:
17
  return history, ""
18
-
19
  # Формируем сообщения для отправки в API
20
- messages = [{"role": "system", "content": system_message}]
21
 
22
  for val in history:
23
  if val[0]:
@@ -42,6 +55,9 @@ def respond(
42
 
43
  return history, ""
44
 
 
 
 
45
  # Ссылка на файл CSS
46
  css_url = "https://neurixyufi-aihub.static.hf.space/style.css"
47
 
@@ -60,7 +76,8 @@ with gr.Blocks(css=css) as demo:
60
  submit = gr.Button("Отправить")
61
 
62
  with gr.Accordion("Настройки модели", open=False):
63
- system_message = gr.Textbox(value="Ты - дружелюбный ии, способный помочь в чём угодно и в любой ситуации!", placeholder="Ты - дружелюбный ии, способный помочь в чём угодно и в любой ситуации!", label="Системное сообщение", lines=2)
 
64
  max_tokens = gr.Slider(minimum=100, maximum=18000, value=18000, step=1, label="Максимальное количество новых токенов")
65
  temperature = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Температура")
66
  top_p = gr.Slider(minimum=0.0, maximum=1.0, value=0.95, step=0.05, label="Top-p (нуклеарное сэмплирование)")
 
1
  import gradio as gr
2
  from gradio_client import Client
3
  import requests
4
+ import json
5
 
6
  # Создаем клиент для взаимодействия с API
7
  client = Client("llamameta/Pixtral-Large-Instruct-2411")
8
 
9
+ # Функция для загрузки системной роли из JSON файла
10
+ def load_system_role(role_name):
11
+ with open('system_roles.json', 'r', encoding='utf-8') as file:
12
+ roles = json.load(file)
13
+ return roles.get(role_name, "Ты помощник по умолчанию.")
14
+
15
+ # Функция для загрузки названий ролей из JSON файла
16
+ def load_role_names():
17
+ with open('system_roles.json', 'r', encoding='utf-8') as file:
18
+ roles = json.load(file)
19
+ return list(roles.keys())
20
+
21
  def respond(
22
  message,
23
  history: list[tuple[str, str]],
24
+ system_role_name,
25
  max_tokens,
26
  temperature,
27
  top_p,
28
  ):
29
  if not message:
30
  return history, ""
31
+ system_role = load_system_role(system_role_name)
32
  # Формируем сообщения для отправки в API
33
+ messages = [{"role": "system", "content": system_role}]
34
 
35
  for val in history:
36
  if val[0]:
 
55
 
56
  return history, ""
57
 
58
+ # Загрузка названий ролей из JSON файла
59
+ role_names = load_role_names()
60
+
61
  # Ссылка на файл CSS
62
  css_url = "https://neurixyufi-aihub.static.hf.space/style.css"
63
 
 
76
  submit = gr.Button("Отправить")
77
 
78
  with gr.Accordion("Настройки модели", open=False):
79
+ with gr.Accordion(label="Помощник", open=False):
80
+ helper_role = gr.Radio(show_label=True, label="Выберите помощника", interactive=True, choices=role_names, value=role_names[0])
81
  max_tokens = gr.Slider(minimum=100, maximum=18000, value=18000, step=1, label="Максимальное количество новых токенов")
82
  temperature = gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Температура")
83
  top_p = gr.Slider(minimum=0.0, maximum=1.0, value=0.95, step=0.05, label="Top-p (нуклеарное сэмплирование)")