fruitpicker01's picture
Update app.py
2fe1da4 verified
raw
history blame
3.73 kB
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()