Update app.py
Browse files
app.py
CHANGED
@@ -6,8 +6,18 @@ import cv2
|
|
6 |
import numpy as np
|
7 |
from pydub import AudioSegment
|
8 |
|
9 |
-
# Инициализация клиента для модели
|
10 |
-
client = InferenceClient("
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
|
|
|
|
|
|
|
|
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 |
|