Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,10 +1,8 @@
|
|
1 |
import gradio as gr
|
2 |
import requests
|
3 |
-
#from matplotlib import container
|
4 |
-
#from gradio_autocompletetextbox import AutocompleteTextbox
|
5 |
-
#from numpy import place
|
6 |
import json
|
7 |
import os
|
|
|
8 |
|
9 |
what = [
|
10 |
"Новый Год", "День Рождения", "Рождество Христово", "День защитника Отечества (23 февраля)", "Международный женский день (8 марта)", "Праздник Весны и Труда (1 мая)", "День Победы (9 мая)", "День России (12 июня)", "День народного единства (4 ноября)", "Старый Новый год", "Масленица", "Пасха", "Троица", "День знаний (1 сентября)", "День матери (последнее воскресенье ноября)"
|
@@ -13,10 +11,11 @@ whom = [
|
|
13 |
"Маме", "Папе", "Родителям", "Ребенку", "Детям", "Сыну", "Дочери", "Внуку", "Внукам", "Бабушке", "Дедушке", "Сестре", "Брату", "Племяннику", "Племяннице", "Другу", "Подруге", "Друзьям", "Подругам", "Супругу", "Супруге", "Партнеру", "Партнерше", "Коллеге", "Коллегам", "Начальнику", "Начальнице", "Боссу", "Ментору", "Учителю", "Учителям", "Студенту", "Студентке", "Клиенту", "Клиентке", "Пациенту", "Пациентке", "Члену семьи", "Членам семьи", "Теще", "Свекру", "Свекрови", "Законному отцу", "Законной матери", "Законным родителям", "Законному ребенку", "Законным детям", "Члену команды", "Членам команды", "Коллеге по работе", "Коллегам по работе", "Коллеге по учебе", "Коллегам по учебе", "Любимому", "Любимой", "Родственнику", "Родственнице", "Родственникам", "Знакомому", "Знакомой", "Знакомым", "Соседу", "Соседке", "Соседям", "Однокласснику", "Однокласснице", "Одноклассникам", "Одногруппнику", "Одногруппнице", "Одногруппникам", "Куму", "Куме", "Крестнику", "Крестнице", "Крестным", "Руководителю", "Подчиненному", "Подчиненным", "Преподавателю", "Преподавателям", "Воспитаннику", "Воспитанникам", "Ученику", "Ученикам", "Наставнику", "Консультанту", "Специалисту", "Юбиляру", "Имениннику", "Имениннице"
|
14 |
]
|
15 |
|
16 |
-
# Функция для генерации текста
|
17 |
def generate(whomtb="Бабушке", fromtb="Внука", whattb="Новый Год", doptb=""):
|
18 |
if not whomtb or not whattb:
|
19 |
-
|
|
|
20 |
|
21 |
system_role = """Ты поздравитель, написатель шикарных, искренних поздравлений. Пользователь будет писать с чем поздравить, кого и возможно дополнительную информацию. Твоя задача - написать по запросу пользователя ИДЕАЛЬНОЕ поздравление. Без форматирования"""
|
22 |
user_msg = f"На праздник: '{whattb}', кому: '{whomtb}', от: '{fromtb}', дополнительно: '{doptb}'"
|
@@ -29,28 +28,35 @@ def generate(whomtb="Бабушке", fromtb="Внука", whattb="Новый Г
|
|
29 |
payload = {
|
30 |
'messages': [{'role': 'system', 'content': system_role}, {'role': 'user', 'content': user_msg}],
|
31 |
'max_tokens': 2500,
|
32 |
-
'model': "openai"
|
|
|
33 |
}
|
34 |
-
|
35 |
try:
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
|
|
|
|
|
|
|
|
|
|
51 |
except requests.exceptions.RequestException as e:
|
52 |
print(f"Ошибка запроса: {e}")
|
53 |
-
|
|
|
54 |
|
55 |
# Ссылка на файл CSS
|
56 |
css_url = "https://neurixyufi-aihub.static.hf.space/style.css"
|
@@ -66,10 +72,8 @@ with gr.Blocks(css=css) as demo:
|
|
66 |
with gr.Column():
|
67 |
with gr.Row():
|
68 |
fromtb = gr.Textbox(show_label=True, placeholder="Внука", label="От кого", interactive=True, container=True,)
|
69 |
-
#whomtb = AutocompleteTextbox(show_label=True, value="Бабушке", label="Кому", commands=whom, interactive=True, container=True,)
|
70 |
whomtb = gr.Textbox(show_label=True, placeholder="Бабушке", label="Кому", interactive=True, container=True,)
|
71 |
with gr.Row():
|
72 |
-
#whattb = AutocompleteTextbox(show_label=True, value="Новый Год", label="Праздник", commands=what, interactive=True, container=True,)
|
73 |
whattb = gr.Textbox(show_label=True, placeholder="Новый Год", label="Праздник", interactive=True, container=True,)
|
74 |
with gr.Row():
|
75 |
doptb = gr.Textbox(show_label=True, placeholder="50-летней", label="Дополнительно")
|
|
|
1 |
import gradio as gr
|
2 |
import requests
|
|
|
|
|
|
|
3 |
import json
|
4 |
import os
|
5 |
+
import time
|
6 |
|
7 |
what = [
|
8 |
"Новый Год", "День Рождения", "Рождество Христово", "День защитника Отечества (23 февраля)", "Международный женский день (8 марта)", "Праздник Весны и Труда (1 мая)", "День Победы (9 мая)", "День России (12 июня)", "День народного единства (4 ноября)", "Старый Новый год", "Масленица", "Пасха", "Троица", "День знаний (1 сентября)", "День матери (последнее воскресенье ноября)"
|
|
|
11 |
"Маме", "Папе", "Родителям", "Ребенку", "Детям", "Сыну", "Дочери", "Внуку", "Внукам", "Бабушке", "Дедушке", "Сестре", "Брату", "Племяннику", "Племяннице", "Другу", "Подруге", "Друзьям", "Подругам", "Супругу", "Супруге", "Партнеру", "Партнерше", "Коллеге", "Коллегам", "Начальнику", "Начальнице", "Боссу", "Ментору", "Учителю", "Учителям", "Студенту", "Студентке", "Клиенту", "Клиентке", "Пациенту", "Пациентке", "Члену семьи", "Членам семьи", "Теще", "Свекру", "Свекрови", "Законному отцу", "Законной матери", "Законным родителям", "Законному ребенку", "Законным детям", "Члену команды", "Членам команды", "Коллеге по работе", "Коллегам по работе", "Коллеге по учебе", "Коллегам по учебе", "Любимому", "Любимой", "Родственнику", "Родственнице", "Родственникам", "Знакомому", "Знакомой", "Знакомым", "Соседу", "Соседке", "Соседям", "Однокласснику", "Однокласснице", "Одноклассникам", "Одногруппнику", "Одногруппнице", "Одногруппникам", "Куму", "Куме", "Крестнику", "Крестнице", "Крестным", "Руководителю", "Подчиненному", "Подчиненным", "Преподавателю", "Преподавателям", "Воспитаннику", "Воспитанникам", "Ученику", "Ученикам", "Наставнику", "Консультанту", "Специалисту", "Юбиляру", "Имениннику", "Имениннице"
|
12 |
]
|
13 |
|
14 |
+
# Функция для генерации текста с потоковой передачей
|
15 |
def generate(whomtb="Бабушке", fromtb="Внука", whattb="Новый Год", doptb=""):
|
16 |
if not whomtb or not whattb:
|
17 |
+
yield "Пожалуйста, заполните все обязательные поля."
|
18 |
+
return
|
19 |
|
20 |
system_role = """Ты поздравитель, написатель шикарных, искренних поздравлений. Пользователь будет писать с чем поздравить, кого и возможно дополнительную информацию. Твоя задача - написать по запросу пользователя ИДЕАЛЬНОЕ поздравление. Без форматирования"""
|
21 |
user_msg = f"На праздник: '{whattb}', кому: '{whomtb}', от: '{fromtb}', дополнительно: '{doptb}'"
|
|
|
28 |
payload = {
|
29 |
'messages': [{'role': 'system', 'content': system_role}, {'role': 'user', 'content': user_msg}],
|
30 |
'max_tokens': 2500,
|
31 |
+
'model': "openai",
|
32 |
+
'stream': True # Включаем потоковую передачу
|
33 |
}
|
34 |
+
|
35 |
try:
|
36 |
+
response = requests.post(os.getenv("BASE_URL"), headers=headers, json=payload, stream=True, timeout=200)
|
37 |
+
response.raise_for_status() # Проверяем на ошибки HTTP
|
38 |
+
|
39 |
+
full_text = ""
|
40 |
+
for chunk in response.iter_lines():
|
41 |
+
if chunk:
|
42 |
+
try:
|
43 |
+
chunk = chunk.decode('utf-8').replace("data: ", "")
|
44 |
+
if chunk == "[DONE]":
|
45 |
+
break
|
46 |
+
chunk_data = json.loads(chunk)
|
47 |
+
if 'choices' in chunk_data and len(chunk_data['choices']) > 0:
|
48 |
+
text_chunk = chunk_data['choices'][0]['delta'].get('content', "")
|
49 |
+
full_text += text_chunk
|
50 |
+
yield full_text # Выводим текст как итератор
|
51 |
+
except json.JSONDecodeError:
|
52 |
+
continue
|
53 |
+
if not full_text:
|
54 |
+
yield "Не удалось получить ответ от сервера."
|
55 |
+
|
56 |
except requests.exceptions.RequestException as e:
|
57 |
print(f"Ошибка запроса: {e}")
|
58 |
+
yield f"Ошибка запроса!"
|
59 |
+
|
60 |
|
61 |
# Ссылка на файл CSS
|
62 |
css_url = "https://neurixyufi-aihub.static.hf.space/style.css"
|
|
|
72 |
with gr.Column():
|
73 |
with gr.Row():
|
74 |
fromtb = gr.Textbox(show_label=True, placeholder="Внука", label="От кого", interactive=True, container=True,)
|
|
|
75 |
whomtb = gr.Textbox(show_label=True, placeholder="Бабушке", label="Кому", interactive=True, container=True,)
|
76 |
with gr.Row():
|
|
|
77 |
whattb = gr.Textbox(show_label=True, placeholder="Новый Год", label="Праздник", interactive=True, container=True,)
|
78 |
with gr.Row():
|
79 |
doptb = gr.Textbox(show_label=True, placeholder="50-летней", label="Дополнительно")
|