Felguk commited on
Commit
126f152
·
verified ·
1 Parent(s): 791a532

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -14
app.py CHANGED
@@ -6,8 +6,18 @@ import cv2
6
  import numpy as np
7
  from pydub import AudioSegment
8
 
9
- # Инициализация клиента для модели Hugging Face
10
- client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
 
 
 
 
 
 
 
 
 
 
11
 
12
  # Функция для обработки PDF
13
  def process_pdf(file):
@@ -44,7 +54,13 @@ def respond(
44
  temperature,
45
  top_p,
46
  file=None,
 
47
  ):
 
 
 
 
 
48
  # Добавляем системное сообщение
49
  messages = [{"role": "system", "content": system_message}]
50
 
@@ -73,18 +89,22 @@ def respond(
73
  # Добавляем текущее сообщение пользователя
74
  messages.append({"role": "user", "content": message})
75
 
76
- # Генерация ответа с использованием модели
77
- response = ""
78
- for message in client.chat_completion(
79
- messages,
80
- max_tokens=max_tokens,
81
- stream=True,
82
- temperature=temperature,
83
- top_p=top_p,
84
- ):
85
- token = message.choices[0].delta.content
86
- response += token
87
- yield response
 
 
 
 
88
 
89
  # Функция для сброса истории чата
90
  def reset_chat():
@@ -99,6 +119,14 @@ with gr.Blocks() as demo:
99
  with gr.Row():
100
  new_chat_button = gr.Button("Новый чат", variant="secondary")
101
 
 
 
 
 
 
 
 
 
102
  # Интерфейс чата
103
  chat_interface = gr.ChatInterface(
104
  respond,
@@ -114,6 +142,7 @@ with gr.Blocks() as demo:
114
  label="Top-p (nucleus sampling)",
115
  ),
116
  gr.File(label="Загрузите файл (опционально)"), # Поле для загрузки файлов
 
117
  ],
118
  )
119
 
 
6
  import numpy as np
7
  from pydub import AudioSegment
8
 
9
+ # Инициализация клиента для модели Felguk/Felguk-v0
10
+ client = InferenceClient("Felguk/Felguk-v0")
11
+
12
+ # Список доступных моделей
13
+ MODELS = {
14
+ "felguk v0": "Felguk/Felguk-v0",
15
+ "chatgpt 4.0": "gpt-4", # Пример, замените на реальный API
16
+ "claude 3.5": "claude-3.5", # Пример, замените на реальный API
17
+ "qwen 2.5": "qwen-2.5", # Пример, замените на реальный API
18
+ "deepseek": "deepseek", # Пример, замените на реальный API
19
+ "le chat": "le-chat", # Пример, замените на реальный API
20
+ }
21
 
22
  # Функция для обработки PDF
23
  def process_pdf(file):
 
54
  temperature,
55
  top_p,
56
  file=None,
57
+ model_name="felguk v0",
58
  ):
59
+ # Выбор модели
60
+ if model_name not in MODELS:
61
+ yield "Ошибка: модель не найдена."
62
+ return
63
+
64
  # Добавляем системное сообщение
65
  messages = [{"role": "system", "content": system_message}]
66
 
 
89
  # Добавляем текущее сообщение пользователя
90
  messages.append({"role": "user", "content": message})
91
 
92
+ # Генерация ответа в зависимости от модели
93
+ if model_name == "felguk v0":
94
+ response = ""
95
+ for message in client.chat_completion(
96
+ messages,
97
+ max_tokens=max_tokens,
98
+ stream=True,
99
+ temperature=temperature,
100
+ top_p=top_p,
101
+ ):
102
+ token = message.choices[0].delta.content
103
+ response += token
104
+ yield response
105
+ else:
106
+ # Здесь можно добавить логику для других моделей
107
+ yield f"Модель {model_name} пока не поддерживается."
108
 
109
  # Функция для сброса истории чата
110
  def reset_chat():
 
119
  with gr.Row():
120
  new_chat_button = gr.Button("Новый чат", variant="secondary")
121
 
122
+ # Выбор модели
123
+ with gr.Row():
124
+ model_dropdown = gr.Dropdown(
125
+ choices=list(MODELS.keys()),
126
+ value="felguk v0",
127
+ label="Выберите модель",
128
+ )
129
+
130
  # Интерфейс чата
131
  chat_interface = gr.ChatInterface(
132
  respond,
 
142
  label="Top-p (nucleus sampling)",
143
  ),
144
  gr.File(label="Загрузите файл (опционально)"), # Поле для загрузки файлов
145
+ model_dropdown, # Выбор модели
146
  ],
147
  )
148