Spaces:
Running
Running
Update app.py
Browse files
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 |
-
|
12 |
max_tokens,
|
13 |
temperature,
|
14 |
top_p,
|
15 |
):
|
16 |
if not message:
|
17 |
return history, ""
|
18 |
-
|
19 |
# Формируем сообщения для отправки в API
|
20 |
-
messages = [{"role": "system", "content":
|
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 |
-
|
|
|
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 (нуклеарное сэмплирование)")
|