Rooni commited on
Commit
db5829b
·
verified ·
1 Parent(s): 1afab97

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -27
app.py CHANGED
@@ -4,13 +4,27 @@ from gradio_client import Client
4
  # Создаем клиент для взаимодействия с API
5
  client = Client("llamameta/Pixtral-Large-Instruct-2411")
6
 
7
- # Функция для обработки сообщений чат-бота
8
- def chatbot_response(message, chat_history, system_message, max_tokens, temperature, top_p):
9
- # Добавляем сообщение пользователя в историю
10
- chat_history.append((message, ""))
11
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  # Генерируем ответ от чат-бота
13
- result = client.predict(
14
  message=message,
15
  system_message=system_message,
16
  max_tokens=max_tokens,
@@ -18,30 +32,26 @@ def chatbot_response(message, chat_history, system_message, max_tokens, temperat
18
  top_p=top_p,
19
  api_name="/chat"
20
  )
21
-
22
- # Добавляем ответ чат-бота в историю
23
- chat_history[-1] = (message, result)
24
-
25
- return chat_history, chat_history
26
 
27
  # Определяем интерфейс Gradio
28
- iface = gr.Interface(
29
- fn=chatbot_response,
30
- inputs=[
31
- gr.inputs.Textbox(lines=2, placeholder="Введите ваше сообщение здесь...", label="Сообщение"),
32
- gr.inputs.State(initial_value=[]), # Состояние для хранения истории сообщений
33
- gr.inputs.Textbox(lines=2, default="You are a friendly Chatbot created by balianone.com", label="Системное сообщение"),
34
- gr.inputs.Slider(minimum=100, maximum=18000, default=18000, label="Максимальное количество новых токенов"),
35
- gr.inputs.Slider(minimum=0.0, maximum=1.0, default=0.7, label="Температура"),
36
- gr.inputs.Slider(minimum=0.0, maximum=1.0, default=0.95, label="Top-p (нуклеарная сэмплирование)")
37
- ],
38
- outputs=[
39
- gr.outputs.Chatbot(label="Чат"),
40
- gr.outputs.State() # Состояние для хранения истории сообщений
41
  ],
42
- title="Chatbot с использованием Pixtral-Large-Instruct",
43
- description="Простой чат-бот, использующий модель Pixtral-Large-Instruct для генерации ответов."
44
  )
45
 
46
  # Запускаем интерфейс
47
- iface.launch()
 
 
4
  # Создаем клиент для взаимодействия с API
5
  client = Client("llamameta/Pixtral-Large-Instruct-2411")
6
 
7
+ def respond(
8
+ message,
9
+ history: list[tuple[str, str]],
10
+ system_message,
11
+ max_tokens,
12
+ temperature,
13
+ top_p,
14
+ ):
15
+ # Формируем сообщения для отправки в API
16
+ messages = [{"role": "system", "content": system_message}]
17
+
18
+ for val in history:
19
+ if val[0]:
20
+ messages.append({"role": "user", "content": val[0]})
21
+ if val[1]:
22
+ messages.append({"role": "assistant", "content": val[1]})
23
+
24
+ messages.append({"role": "user", "content": message})
25
+
26
  # Генерируем ответ от чат-бота
27
+ response = client.predict(
28
  message=message,
29
  system_message=system_message,
30
  max_tokens=max_tokens,
 
32
  top_p=top_p,
33
  api_name="/chat"
34
  )
35
+
36
+ yield response
 
 
 
37
 
38
  # Определяем интерфейс Gradio
39
+ demo = gr.ChatInterface(
40
+ respond,
41
+ additional_inputs=[
42
+ gr.Textbox(value="You are a friendly Chatbot created by balianone.com", label="System message"),
43
+ gr.Slider(minimum=100, maximum=18000, value=18000, step=1, label="Max new tokens"),
44
+ gr.Slider(minimum=0.0, maximum=1.0, value=0.7, step=0.1, label="Temperature"),
45
+ gr.Slider(
46
+ minimum=0.0,
47
+ maximum=1.0,
48
+ value=0.95,
49
+ step=0.05,
50
+ label="Top-p (nucleus sampling)",
51
+ ),
52
  ],
 
 
53
  )
54
 
55
  # Запускаем интерфейс
56
+ if __name__ == "__main__":
57
+ demo.launch()