fruitpicker01 commited on
Commit
29f5b29
·
verified ·
1 Parent(s): 0cd7447

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -27
app.py CHANGED
@@ -3,24 +3,13 @@ import pandas as pd
3
 
4
  # Функция для загрузки данных из вкладок Excel
5
  def load_dropdown_data(file_path, sheet_name, column_name):
6
- """Загружает уникальные значения из столбца на заданной вкладке и добавляет вариант 'Не выбрано'."""
7
- try:
8
- data = pd.read_excel(file_path, sheet_name=sheet_name)
9
- unique_values = data[column_name].dropna().unique().tolist()
10
- values = ["Не выбрано"] + unique_values # "Не выбрано" добавлено в начало
11
- print(f"Загружено для '{sheet_name}' столбца '{column_name}': {values}")
12
- return values
13
- except Exception as e:
14
- print(f"Ошибка загрузки данных из листа '{sheet_name}': {e}")
15
- return ["Не выбрано"]
16
-
17
- # Путь к файлу Excel
18
- file_path = "Исходные данные.xlsx"
19
 
20
  # Загрузка данных из всех вкладок
21
- products = load_dropdown_data(file_path, "Продукты", "Наименование продукта")
22
- data_products = pd.read_excel(file_path, sheet_name="Продукты")
23
-
24
  genders = load_dropdown_data(file_path, "Пол", "Пол")
25
  generations = load_dropdown_data(file_path, "Поколение", "Поколение")
26
  psychotypes = load_dropdown_data(file_path, "Психотип", "Психотип")
@@ -30,7 +19,7 @@ opfs = load_dropdown_data(file_path, "ОПФ", "ОПФ")
30
 
31
  # Функция для заполнения полей на основе выбранного продукта
32
  def fill_product_details(selected_product, data):
33
- if selected_product and selected_product != "Не выбрано":
34
  product_row = data[data["Наименование продукта"] == selected_product].iloc[0]
35
  return (
36
  product_row["Описание предложения"],
@@ -59,8 +48,8 @@ with gr.Blocks(theme="default") as demo:
59
  gr.Markdown("**Продукт**")
60
  product_dropdown = gr.Dropdown(
61
  label="Продукт",
62
- choices=products, # Список с опцией "Не выбрано" и данными из файла
63
- # value="Не выбрано" # Убираем установку значения по умолчанию
64
  )
65
  description = gr.Textbox(label="Описание предложения", lines=5, value="")
66
  product_name = gr.Textbox(label="Наименование продукта", lines=1, value="")
@@ -76,16 +65,15 @@ with gr.Blocks(theme="default") as demo:
76
 
77
  with gr.Column(scale=1):
78
  gr.Markdown("**Клиент**")
79
- gender_dropdown = gr.Dropdown(label="Пол", choices=genders)
80
- generation_dropdown = gr.Dropdown(label="Поколение", choices=generations)
81
- psychotype_dropdown = gr.Dropdown(label="Психотип", choices=psychotypes)
82
- business_stage_dropdown = gr.Dropdown(label="Стадия бизнеса", choices=business_stages)
83
- industry_dropdown = gr.Dropdown(label="Отрасль", choices=industries)
84
- opf_dropdown = gr.Dropdown(label="ОПФ", choices=opfs)
85
  chosen_approach = gr.Textbox(label="Выбранный подход", lines=1, value="")
86
- presence_in_db = gr.Textbox(label="Наличие в базе", lines=1, value="", interactive=False)
87
 
88
- # Остальная часть интерфейса остается без изменений...
89
  # Кнопки: Вернуть параметры, Создать персонализированное SMS
90
  with gr.Row():
91
  return_params_btn = gr.Button("Вернуть параметры предыдущего запроса")
 
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, "Психотип", "Психотип")
 
19
 
20
  # Функция для заполнения полей на основе выбранного продукта
21
  def fill_product_details(selected_product, data):
22
+ if selected_product:
23
  product_row = data[data["Наименование продукта"] == selected_product].iloc[0]
24
  return (
25
  product_row["Описание предложения"],
 
48
  gr.Markdown("**Продукт**")
49
  product_dropdown = gr.Dropdown(
50
  label="Продукт",
51
+ choices=products,
52
+ value=None
53
  )
54
  description = gr.Textbox(label="Описание предложения", lines=5, value="")
55
  product_name = gr.Textbox(label="Наименование продукта", lines=1, value="")
 
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():
79
  return_params_btn = gr.Button("Вернуть параметры предыдущего запроса")