File size: 6,747 Bytes
04c268e
2fe1da4
04c268e
15a7be8
 
29f5b29
 
 
7eb0855
 
29f5b29
 
15a7be8
 
 
 
 
 
2fe1da4
 
 
29f5b29
2fe1da4
 
 
 
 
 
 
 
 
 
8976186
b033846
2fe1da4
8837319
2fe1da4
 
 
 
 
 
 
8837319
4fdbb1d
 
 
 
8837319
 
29f5b29
 
8837319
bdd1b10
8837319
bdd1b10
8837319
4fdbb1d
15a7be8
 
 
 
 
 
2fe1da4
4fdbb1d
 
29f5b29
 
 
 
 
 
8837319
29f5b29
2818eb7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15a7be8
 
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import gradio as gr
import pandas as pd

# Функция для загрузки данных из вкладок Excel
def load_dropdown_data(file_path, sheet_name, column_name):
    """Загружает уникальные значения из столбца на заданной вкладке."""
    data = pd.read_excel(file_path, sheet_name=sheet_name)
    return data[column_name].dropna().unique().tolist()

# Загрузка данных из всех вкладок
file_path = "Исходные данные.xlsx"
products, data_products = load_dropdown_data(file_path, "Продукты", "Наименование продукта"), pd.read_excel(file_path, sheet_name="Продукты")
genders = load_dropdown_data(file_path, "Пол", "Пол")
generations = load_dropdown_data(file_path, "Поколение", "Поколение")
psychotypes = load_dropdown_data(file_path, "Психотип", "Психотип")
business_stages = load_dropdown_data(file_path, "Стадия бизнеса", "Стадия бизнеса")
industries = load_dropdown_data(file_path, "Отрасль", "Отрасль")
opfs = load_dropdown_data(file_path, "ОПФ", "ОПФ")

# Функция для заполнения полей на основе выбранного продукта
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 "", "", "", ""

# Создание интерфейса
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=5, value="")
            product_name = gr.Textbox(label="Наименование продукта", lines=1, value="")
            benefits = gr.Textbox(label="Преимущества", lines=9, value="")
            key_message = gr.Textbox(label="Ключевое сообщение", lines=2, value="")
        
            # Обработчик выбора продукта
            product_dropdown.change(
                fn=lambda selected: fill_product_details(selected, data_products),
                inputs=[product_dropdown],
                outputs=[description, product_name, benefits, key_message]
            )
        
        with gr.Column(scale=1):
            gr.Markdown("**Клиент**")
            gender_dropdown = gr.Dropdown(label="Пол", choices=genders, value=None)
            generation_dropdown = gr.Dropdown(label="Поколение", choices=generations, value=None)
            psychotype_dropdown = gr.Dropdown(label="Психотип", choices=psychotypes, value=None)
            business_stage_dropdown = gr.Dropdown(label="Стадия бизнеса", choices=business_stages, value=None)
            industry_dropdown = gr.Dropdown(label="Отрасль", choices=industries, value=None)
            opf_dropdown = gr.Dropdown(label="ОПФ", choices=opfs, value=None)
            chosen_approach = gr.Textbox(label="Выбранный подход", lines=1, value="")
            presence_in_db = gr.Textbox(label="Наличие в базе", lines=1, value="В базе есть SMS под данные параметры персонализации.", interactive=False)

    # Кнопки: Вернуть параметры, Создать персонализированное SMS
    with gr.Row():
        return_params_btn = gr.Button("Вернуть параметры предыдущего запроса")
        create_personal_sms_btn = gr.Button("Создать персонализированное SMS")
    
    # Блок для Модель 1, Промпт 1, SMS 1
    with gr.Row():
        with gr.Column():
            model_1_name = gr.Textbox(label="Модель 1", value="Скрыто для слепого тестирования", interactive=False)
            prompt_1 = gr.Textbox(label="Промпт 1", value="Скрыто для слепого тестирования", interactive=False)
            sms_1 = gr.Textbox(label="SMS 1", lines=3, value="")
        
        # Блок для Модель 2, Промпт 2, SMS 2
        with gr.Column():
            model_2_name = gr.Textbox(label="Модель 2", value="Скрыто для слепого тестирования", interactive=False)
            prompt_2 = gr.Textbox(label="Промпт 2", value="Скрыто для слепого тестирования", interactive=False)
            sms_2 = gr.Textbox(label="SMS 2", lines=3, value="")
    
    # Кнопки выбора SMS
    with gr.Row():
        prefer_sms_1_btn = gr.Button("Я предпочитаю это SMS")
        prefer_sms_2_btn = gr.Button("Я предпочитаю это SMS")

    # Кнопка "Перегенерировать SMS"
    regen_btn = gr.Button("Перегенерировать SMS (не нравится ни одно из SMS)")
    
    # Комментарии к SMS 1 и 2
    with gr.Row():
        comment_sms_1 = gr.Textbox(label="Комментарий к SMS 1", lines=2, value="")
        comment_sms_2 = gr.Textbox(label="Комментарий к SMS 2", lines=2, value="")
    
    # Откорректированные SMS
    with gr.Row():
        corrected_sms_1 = gr.Textbox(label="Откорректированное SMS 1", lines=3, value="")
        corrected_sms_2 = gr.Textbox(label="Откорректированное SMS 2", lines=3, value="")
    
    # Кнопки сохранения
    with gr.Row():
        save_sms_1_btn = gr.Button("Сохранить в базу")
        save_sms_2_btn = gr.Button("Сохранить в базу")
    
    demo.launch()