fruitpicker01 commited on
Commit
2fe1da4
·
verified ·
1 Parent(s): e6f62f6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -58
app.py CHANGED
@@ -1,27 +1,48 @@
1
  import gradio as gr
 
2
 
3
- # HTML для прогресс-бара
4
- progress_bar_html = """
5
- <div style="width: 100%; background-color: #e0e0e0; border-radius: 10px; overflow: hidden;">
6
- <div style="width: 0%; background-color: #4caf50; height: 20px; text-align: center; color: white;">
7
- 0%
8
- </div>
9
- </div>
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
- # Кнопки: Вернуть параметры, Создать персонализированное SMS
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()