fruitpicker01 commited on
Commit
15a7be8
·
verified ·
1 Parent(s): 2818eb7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -24
app.py CHANGED
@@ -1,11 +1,21 @@
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):
@@ -19,10 +29,6 @@ def fill_product_details(selected_product, data):
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 по выбранному продукту**")
@@ -50,23 +56,23 @@ with gr.Blocks(theme="default") as demo:
50
  benefits = gr.Textbox(label="Преимущества", lines=9, 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, benefits, key_message]
58
- )
59
 
60
  with gr.Column(scale=1):
61
  gr.Markdown("**Клиент**")
62
- gender = gr.Dropdown(label="Пол", choices=["Мужской", "Женский", "Не определено"], value=None)
63
- generation = gr.Dropdown(label="Поколение", choices=["X", "Y", "Z"], value=None)
64
- psychotype = 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
  # Кнопки: Вернуть параметры, Создать персонализированное SMS
72
  with gr.Row():
@@ -106,7 +112,7 @@ with gr.Blocks(theme="default") as demo:
106
 
107
  # Кнопки сохранения
108
  with gr.Row():
109
- save_sms_1_btn = gr.Button("Сохранить в БД")
110
- save_sms_2_btn = gr.Button("Сохранить в БД")
111
 
112
  demo.launch()
 
1
  import gradio as gr
2
  import pandas as pd
3
 
4
+ # Функция для загрузки данных из вкладок Excel
5
+ def load_dropdown_data(file_path, sheet_name, column_name):
6
+ """Загружает уникальные значения из столбца на заданной вкладке."""
7
+ data = pd.read_excel(file_path, sheet_name=sheet_name)
8
+ return data[column_name].dropna().unique().tolist()
9
+
10
+ # Загрузка данных из всех вкладок
11
+ file_path = "Исходные данные.xlsx"
12
+ products, data_products = load_dropdown_data(file_path, "Продукты", "Наименование продукта"), pd.read_excel(file_path, sheet_name="Продукты")
13
+ genders = load_dropdown_data(file_path, "Пол", "Пол")
14
+ generations = load_dropdown_data(file_path, "Поколение", "Поколение")
15
+ psychotypes = load_dropdown_data(file_path, "Психотип", "Психотип")
16
+ business_stages = load_dropdown_data(file_path, "Стадия бизнеса", "Стадия бизнеса")
17
+ industries = load_dropdown_data(file_path, "Отрасль", "Отрасль")
18
+ opfs = load_dropdown_data(file_path, "ОПФ", "ОПФ")
19
 
20
  # Функция для заполнения полей на основе выбранного продукта
21
  def fill_product_details(selected_product, data):
 
29
  )
30
  return "", "", "", ""
31
 
 
 
 
 
32
  # Создание интерфейса
33
  with gr.Blocks(theme="default") as demo:
34
  gr.Markdown("**Процент созданных SMS по выбранному продукту**")
 
56
  benefits = gr.Textbox(label="Преимущества", lines=9, value="")
57
  key_message = gr.Textbox(label="Ключевое сообщение", lines=2, value="")
58
 
59
+ # Обработчик выбора продукта
60
+ product_dropdown.change(
61
+ fn=lambda selected: fill_product_details(selected, data_products),
62
+ inputs=[product_dropdown],
63
+ outputs=[description, product_name, benefits, key_message]
64
+ )
65
 
66
  with gr.Column(scale=1):
67
  gr.Markdown("**Клиент**")
68
+ gender_dropdown = gr.Dropdown(label="Пол", choices=genders, value=None)
69
+ generation_dropdown = gr.Dropdown(label="Поколение", choices=generations, value=None)
70
+ psychotype_dropdown = gr.Dropdown(label="Психотип", choices=psychotypes, value=None)
71
+ business_stage_dropdown = gr.Dropdown(label="Стадия бизнеса", choices=business_stages, value=None)
72
+ industry_dropdown = gr.Dropdown(label="Отрасль", choices=industries, value=None)
73
+ opf_dropdown = gr.Dropdown(label="ОПФ", choices=opfs, value=None)
74
  chosen_approach = gr.Textbox(label="Выбранный подход", lines=1, value="")
75
+ presence_in_db = gr.Textbox(label="Наличие в базе", lines=1, value="В базе есть SMS под данные параметры персонализации.", interactive=False)
76
 
77
  # Кнопки: Вернуть параметры, Создать персонализированное SMS
78
  with gr.Row():
 
112
 
113
  # Кнопки сохранения
114
  with gr.Row():
115
+ save_sms_1_btn = gr.Button("Сохранить в базу")
116
+ save_sms_2_btn = gr.Button("Сохранить в базу")
117
 
118
  demo.launch()