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 = """
""" 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=7, value="") product_name = gr.Textbox(label="Наименование продукта", lines=1, value="") advantages = gr.Textbox(label="Преимущества", lines=7, 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()