Spaces:
Sleeping
Sleeping
import gradio as gr | |
import pandas as pd | |
# Функция для загрузки данных из файла Excel | |
def load_products_data(file_path): | |
data = pd.read_excel(file_path, sheet_name="Продукты") | |
products = data["Наименование продукта"].unique().tolist() | |
return data, products | |
# Функция для заполнения полей на основе выбранного продукта | |
def fill_product_details(selected_product, data): | |
if selected_product: | |
product_row = data[data["Наименование продукта"] == selected_product].iloc[0] | |
return ( | |
product_row["Описание предложения"], | |
product_row["Наименование продукта"], | |
product_row["Преимущества"], | |
product_row["Ключевое сообщение"] | |
) | |
return "", "", "", "" | |
# Загрузка данных | |
file_path = "Исходные данные.xlsx" | |
data, products = load_products_data(file_path) | |
# Создание интерфейса | |
with gr.Blocks(theme="default") as demo: | |
gr.Markdown("**Процент созданных SMS по выбранному продукту**") | |
# Прогресс-бар | |
progress_bar_html = """ | |
<div style="width: 100%; background-color: #e0e0e0; border-radius: 10px; overflow: hidden;"> | |
<div style="width: 0%; background-color: #4caf50; height: 20px; text-align: center; color: white;"> | |
0% | |
</div> | |
</div> | |
""" | |
gr.HTML(progress_bar_html) | |
with gr.Row(): | |
with gr.Column(scale=1): | |
gr.Markdown("**Продукт**") | |
product_dropdown = gr.Dropdown( | |
label="Продукт", | |
choices=products, | |
value=None | |
) | |
description = gr.Textbox(label="Описание предложения", lines=9, value="") | |
product_name = gr.Textbox(label="Наименование продукта", lines=1, value="") | |
advantages = gr.Textbox(label="Преимущества", lines=5, value="") | |
key_message = gr.Textbox(label="Ключевое сообщение", lines=2, value="") | |
# Обработчик выбора продукта | |
product_dropdown.change( | |
fn=lambda selected: fill_product_details(selected, data), | |
inputs=[product_dropdown], | |
outputs=[description, product_name, advantages, key_message] | |
) | |
with gr.Column(scale=1): | |
gr.Markdown("**Клиент**") | |
gender = gr.Dropdown(label="Пол", choices=["Мужской", "Женский", "Не определено"], value=None) | |
generation = gr.Dropdown(label="Поколение", choices=["X", "Y", "Z"], value=None) | |
psychotype = gr.Dropdown(label="Психотип", choices=["Аналитик", "Эмоциональный", "Практик"], value=None) | |
business_stage = gr.Dropdown(label="Стадия бизнеса", choices=["Стартап", "Рост", "Зрелость"], value=None) | |
industry = gr.Dropdown(label="Отрасль", choices=["Ритейл", "IT", "Производство"], value=None) | |
opf = gr.Dropdown(label="ОПФ", choices=["ООО", "ИП", "АО"], value=None) | |
chosen_approach = gr.Textbox(label="Выбранный подход", lines=1, value="") | |
presence_in_db = gr.Textbox(label="Наличие в БД", lines=1, value="В базе есть SMS под данные параметры персонализации.", interactive=False) | |
demo.launch() |