Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,27 +1,48 @@
|
|
1 |
import gradio as gr
|
|
|
2 |
|
3 |
-
#
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
|
|
12 |
with gr.Blocks(theme="default") as demo:
|
13 |
-
# Надпись над прогресс-баром
|
14 |
gr.Markdown("**Процент созданных SMS по выбранному продукту**")
|
|
|
15 |
# Прогресс-бар
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
gr.HTML(progress_bar_html)
|
17 |
|
18 |
with gr.Row():
|
19 |
-
# Левая часть: Продукт
|
20 |
with gr.Column(scale=1):
|
21 |
gr.Markdown("**Продукт**")
|
22 |
product_dropdown = gr.Dropdown(
|
23 |
label="Продукт",
|
24 |
-
choices=
|
25 |
value=None
|
26 |
)
|
27 |
description = gr.Textbox(label="Описание предложения", lines=9, value="")
|
@@ -29,7 +50,13 @@ with gr.Blocks(theme="default") as demo:
|
|
29 |
advantages = gr.Textbox(label="Преимущества", lines=5, value="")
|
30 |
key_message = gr.Textbox(label="Ключевое сообщение", lines=2, value="")
|
31 |
|
32 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
with gr.Column(scale=1):
|
34 |
gr.Markdown("**Клиент**")
|
35 |
gender = gr.Dropdown(label="Пол", choices=["Мужской", "Женский", "Не определено"], value=None)
|
@@ -38,52 +65,7 @@ with gr.Blocks(theme="default") as demo:
|
|
38 |
business_stage = gr.Dropdown(label="Стадия бизнеса", choices=["Стартап", "Рост", "Зрелость"], value=None)
|
39 |
industry = gr.Dropdown(label="Отрасль", choices=["Ритейл", "IT", "Производство"], value=None)
|
40 |
opf = gr.Dropdown(label="ОПФ", choices=["ООО", "ИП", "АО"], value=None)
|
41 |
-
|
42 |
-
# Выбранный подход - просто текстовое поле, пустое
|
43 |
chosen_approach = gr.Textbox(label="Выбранный подход", lines=1, value="")
|
44 |
-
|
45 |
-
# Наличие в БД
|
46 |
presence_in_db = gr.Textbox(label="Наличие в БД", lines=1, value="В базе есть SMS под данные параметры персонализации.", interactive=False)
|
47 |
|
48 |
-
|
49 |
-
with gr.Row():
|
50 |
-
return_params_btn = gr.Button("Вернуть параметры предыдущего запроса")
|
51 |
-
create_personal_sms_btn = gr.Button("Создать персонализированное SMS")
|
52 |
-
|
53 |
-
# Блок для Модель 1, Промпт 1, SMS 1
|
54 |
-
with gr.Row():
|
55 |
-
with gr.Column():
|
56 |
-
model_1_name = gr.Textbox(label="Модель 1", value="Скрыто для слепого тестирования", interactive=False)
|
57 |
-
prompt_1 = gr.Textbox(label="Промпт 1", value="Скрыто для слепого тестирования", interactive=False)
|
58 |
-
sms_1 = gr.Textbox(label="SMS 1", lines=3, value="")
|
59 |
-
|
60 |
-
# Блок дл�� Модель 2, Промпт 2, SMS 2
|
61 |
-
with gr.Column():
|
62 |
-
model_2_name = gr.Textbox(label="Модель 2", value="Скрыто для слепого тестирования", interactive=False)
|
63 |
-
prompt_2 = gr.Textbox(label="Промпт 2", value="Скрыто для слепого тестирования", interactive=False)
|
64 |
-
sms_2 = gr.Textbox(label="SMS 2", lines=3, value="")
|
65 |
-
|
66 |
-
# Кнопки выбора SMS
|
67 |
-
with gr.Row():
|
68 |
-
prefer_sms_1_btn = gr.Button("Я предпочитаю это SMS")
|
69 |
-
prefer_sms_2_btn = gr.Button("Я предпочитаю это SMS")
|
70 |
-
|
71 |
-
# Кнопка "Перегенерировать SMS"
|
72 |
-
regen_btn = gr.Button("Перегенерировать SMS (не нравится ни одно из SMS)")
|
73 |
-
|
74 |
-
# Комментарии к SMS 1 и 2
|
75 |
-
with gr.Row():
|
76 |
-
comment_sms_1 = gr.Textbox(label="Комментарий к SMS 1", lines=2, value="")
|
77 |
-
comment_sms_2 = gr.Textbox(label="Комментарий к SMS 2", lines=2, value="")
|
78 |
-
|
79 |
-
# Откорректированные SMS
|
80 |
-
with gr.Row():
|
81 |
-
corrected_sms_1 = gr.Textbox(label="Откорректированное SMS 1", lines=3, value="")
|
82 |
-
corrected_sms_2 = gr.Textbox(label="Откорректированное SMS 2", lines=3, value="")
|
83 |
-
|
84 |
-
# Кнопки сохранения
|
85 |
-
with gr.Row():
|
86 |
-
save_sms_1_btn = gr.Button("Сохранить в БД")
|
87 |
-
save_sms_2_btn = gr.Button("Сохранить в БД")
|
88 |
-
|
89 |
-
demo.launch()
|
|
|
1 |
import gradio as gr
|
2 |
+
import pandas as pd
|
3 |
|
4 |
+
# Функция для загрузки данных из файла Excel
|
5 |
+
def load_products_data(file_path):
|
6 |
+
data = pd.read_excel(file_path, sheet_name="Продукты")
|
7 |
+
products = data["Наименование продукта"].unique().tolist()
|
8 |
+
return data, products
|
9 |
+
|
10 |
+
# Функция для заполнения полей на основе выбранного продукта
|
11 |
+
def fill_product_details(selected_product, data):
|
12 |
+
if selected_product:
|
13 |
+
product_row = data[data["Наименование продукта"] == selected_product].iloc[0]
|
14 |
+
return (
|
15 |
+
product_row["Описание предложения"],
|
16 |
+
product_row["Наименование продукта"],
|
17 |
+
product_row["Преимущества"],
|
18 |
+
product_row["Ключевое сообщение"]
|
19 |
+
)
|
20 |
+
return "", "", "", ""
|
21 |
+
|
22 |
+
# Загрузка данных
|
23 |
+
file_path = "Исходные данные.xlsx"
|
24 |
+
data, products = load_products_data(file_path)
|
25 |
|
26 |
+
# Создание интерфейса
|
27 |
with gr.Blocks(theme="default") as demo:
|
|
|
28 |
gr.Markdown("**Процент созданных SMS по выбранному продукту**")
|
29 |
+
|
30 |
# Прогресс-бар
|
31 |
+
progress_bar_html = """
|
32 |
+
<div style="width: 100%; background-color: #e0e0e0; border-radius: 10px; overflow: hidden;">
|
33 |
+
<div style="width: 0%; background-color: #4caf50; height: 20px; text-align: center; color: white;">
|
34 |
+
0%
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
"""
|
38 |
gr.HTML(progress_bar_html)
|
39 |
|
40 |
with gr.Row():
|
|
|
41 |
with gr.Column(scale=1):
|
42 |
gr.Markdown("**Продукт**")
|
43 |
product_dropdown = gr.Dropdown(
|
44 |
label="Продукт",
|
45 |
+
choices=products,
|
46 |
value=None
|
47 |
)
|
48 |
description = gr.Textbox(label="Описание предложения", lines=9, value="")
|
|
|
50 |
advantages = gr.Textbox(label="Преимущества", lines=5, value="")
|
51 |
key_message = gr.Textbox(label="Ключевое сообщение", lines=2, value="")
|
52 |
|
53 |
+
# Обработчик выбора продукта
|
54 |
+
product_dropdown.change(
|
55 |
+
fn=lambda selected: fill_product_details(selected, data),
|
56 |
+
inputs=[product_dropdown],
|
57 |
+
outputs=[description, product_name, advantages, key_message]
|
58 |
+
)
|
59 |
+
|
60 |
with gr.Column(scale=1):
|
61 |
gr.Markdown("**Клиент**")
|
62 |
gender = gr.Dropdown(label="Пол", choices=["Мужской", "Женский", "Не определено"], value=None)
|
|
|
65 |
business_stage = gr.Dropdown(label="Стадия бизнеса", choices=["Стартап", "Рост", "Зрелость"], value=None)
|
66 |
industry = gr.Dropdown(label="Отрасль", choices=["Ритейл", "IT", "Производство"], value=None)
|
67 |
opf = gr.Dropdown(label="ОПФ", choices=["ООО", "ИП", "АО"], value=None)
|
|
|
|
|
68 |
chosen_approach = gr.Textbox(label="Выбранный подход", lines=1, value="")
|
|
|
|
|
69 |
presence_in_db = gr.Textbox(label="Наличие в БД", lines=1, value="В базе есть SMS под данные параметры персонализации.", interactive=False)
|
70 |
|
71 |
+
demo.launch()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|