Spaces:
Sleeping
Sleeping
File size: 7,436 Bytes
04c268e 2fe1da4 04c268e 15a7be8 d3b5e6f 7eb0855 0cd7447 7eb0855 15a7be8 7eb0855 15a7be8 7eb0855 15a7be8 2fe1da4 d3b5e6f 2fe1da4 8976186 b033846 2fe1da4 8837319 2fe1da4 8837319 4fdbb1d 8837319 3c27bb8 0cd7447 8837319 bdd1b10 8837319 bdd1b10 8837319 4fdbb1d 15a7be8 2fe1da4 4fdbb1d 0cd7447 8837319 e630a4b 2818eb7 0cd7447 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 120 121 122 123 124 125 126 127 128 129 130 |
import gradio as gr
import pandas as pd
# Функция для загрузки данных из вкладок Excel
def load_dropdown_data(file_path, sheet_name, column_name):
"""Загружает уникальные значения из столбца на заданной вкладке и добавляет вариант 'Не выбрано'."""
try:
data = pd.read_excel(file_path, sheet_name=sheet_name)
unique_values = data[column_name].dropna().unique().tolist()
values = ["Не выбрано"] + unique_values # "Не выбрано" добавлено в начало
print(f"Загружено для '{sheet_name}' столбца '{column_name}': {values}")
return values
except Exception as e:
print(f"Ошибка загрузки данных из листа '{sheet_name}': {e}")
return ["Не выбрано"]
# Путь к файлу Excel
file_path = "Исходные данные.xlsx"
# Загрузка данных из всех вкладок
products = load_dropdown_data(file_path, "Продукты", "Наименование продукта")
data_products = 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)
generation_dropdown = gr.Dropdown(label="Поколение", choices=generations)
psychotype_dropdown = gr.Dropdown(label="Психотип", choices=psychotypes)
business_stage_dropdown = gr.Dropdown(label="Стадия бизнеса", choices=business_stages)
industry_dropdown = gr.Dropdown(label="Отрасль", choices=industries)
opf_dropdown = gr.Dropdown(label="ОПФ", choices=opfs)
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() |