Spaces:
Sleeping
Sleeping
File size: 7,144 Bytes
04c268e 2fe1da4 04c268e 15a7be8 d3b5e6f 15a7be8 3c27bb8 15a7be8 2fe1da4 d3b5e6f 2fe1da4 8976186 b033846 2fe1da4 8837319 2fe1da4 8837319 4fdbb1d 8837319 3c27bb8 8837319 bdd1b10 8837319 bdd1b10 8837319 4fdbb1d 15a7be8 2fe1da4 4fdbb1d d3b5e6f 8837319 e630a4b 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 119 |
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)
values = ["Не выбрано"] + data[column_name].dropna().unique().tolist() # "Не выбрано" добавлено в начало
return values
# Загрузка данных из всех вкладок
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 and 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="Не выбрано" # "Не выбрано" установлено по умолчанию
)
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="Не выбрано")
generation_dropdown = gr.Dropdown(label="Поколение", choices=generations, value="Не выбрано")
psychotype_dropdown = gr.Dropdown(label="Психотип", choices=psychotypes, value="Не выбрано")
business_stage_dropdown = gr.Dropdown(label="Стадия бизнеса", choices=business_stages, value="Не выбрано")
industry_dropdown = gr.Dropdown(label="Отрасль", choices=industries, value="Не выбрано")
opf_dropdown = gr.Dropdown(label="ОПФ", choices=opfs, value="Не выбрано")
chosen_approach = gr.Textbox(label="Выбранный подход", lines=1, value="")
presence_in_db = gr.Textbox(label="Наличие в базе", lines=1, value="", 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() |