File size: 3,731 Bytes
04c268e
2fe1da4
04c268e
2fe1da4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8837319
2fe1da4
8976186
b033846
2fe1da4
8837319
2fe1da4
 
 
 
 
 
 
8837319
4fdbb1d
 
 
 
8837319
 
2fe1da4
8837319
 
e5e9528
8837319
 
 
4fdbb1d
2fe1da4
 
 
 
 
 
 
4fdbb1d
 
8837319
 
 
 
 
 
 
 
4fdbb1d
2fe1da4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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()