import gradio as gr with gr.Blocks() as demo: # Верхняя строка: Progress bar with gr.Row(): # Здесь мы можем отобразить фейковый прогресс бар # Например, три черных квадрата и "7%" # Т.к. нет встроенного прогрессбара, используем Markdown или HTML gr.Markdown("### Progress bar") with gr.Row(): # Имитируем три заполненных квадрата и 7% gr.HTML("
" "
" "
" "
" "7%
") with gr.Row(): # Левая колонка: Продукт with gr.Column(scale=1): gr.Markdown("**Продукт**") product_dropdown = gr.Dropdown(label="Продукт", choices=["Продукт A", "Продукт B"], value="Продукт A") description = gr.Textbox(label="Описание предложения", lines=5, placeholder="Введите описание...") product_name = gr.Textbox(label="Наименование продукта", lines=1, placeholder="Введите наименование...") advantages = gr.Textbox(label="Преимущества", lines=5, placeholder="Введите преимущества...") key_message = gr.Textbox(label="Ключевое сообщение", lines=2, placeholder="Введите ключевое сообщение...") # Правая колонка: Клиент with gr.Column(scale=1): gr.Markdown("**Клиент**") gender = gr.Dropdown(label="Пол", choices=["Мужской", "Женский", "Не определено"], value="Мужской") generation = gr.Dropdown(label="Поколение", choices=["X", "Y", "Z"], value="Y") psychotype = gr.Dropdown(label="Психотип", choices=["Аналитик", "Эмоциональный", "Практик"], value="Аналитик") business_stage = gr.Dropdown(label="Стадия бизнеса", choices=["Стартап", "Рост", "Зрелость"], value="Стартап") industry = gr.Dropdown(label="Отрасль", choices=["Ритейл", "IT", "Производство"], value="IT") opf = gr.Dropdown(label="ОПФ", choices=["ООО", "ИП", "АО"], value="ООО") chosen_approach = gr.Dropdown(label="Выбранный подход", choices=["Подход 1", "Подход 2", "Подход 3"], value="Подход 1") # Поле «Наличие в БД» gr.Markdown("**Наличие в БД**") gr.Markdown("В базе есть SMS под данные параметры персонализации") # Кнопки: Вернуть параметры, Создать персонализированное SMS with gr.Row(): return_params_btn = gr.Button("Вернуть параметры предыдущего запроса") create_personal_sms_btn = gr.Button("Создать персонализированное SMS") # Блок моделей и их промптов with gr.Row(): with gr.Column(): gr.Markdown("**Модель 1**") model_1_name = gr.Markdown("Название модели скрыто для проведения слепого тестирования") prompt_1 = gr.Markdown("Промпт скрыт для проведения слепого тестирования") sms_1 = gr.Textbox(label="SMS 1", lines=3) with gr.Column(): gr.Markdown("**Модель 2**") model_2_name = gr.Markdown("Название модели скрыто для проведения слепого тестирования") prompt_2 = gr.Markdown("Промпт скрыт для проведения слепого тестирования") sms_2 = gr.Textbox(label="SMS 2", lines=3) # Кнопки выбора предпочтительного SMS и перегенерации with gr.Row(): prefer_sms_1_btn = gr.Button("Я предпочитаю это SMS") prefer_sms_2_btn = gr.Button("Я предпочитаю это SMS") regen_btn = gr.Button("Перегенерировать (не нравится ни одно из SMS)") # Комментарии к SMS with gr.Row(): comment_sms_1 = gr.Textbox(label="Комментарий к SMS 1", lines=2) comment_sms_2 = gr.Textbox(label="Комментарий к SMS 2", lines=2) # Откорректированные SMS with gr.Row(): corrected_sms_1 = gr.Textbox(label="Откорректированное SMS 1", lines=3) corrected_sms_2 = gr.Textbox(label="Откорректированное SMS 2", lines=3) # Кнопки сохранения в БД with gr.Row(): save_sms_1_btn = gr.Button("Сохранить в БД") save_sms_2_btn = gr.Button("Сохранить в БД") # Набор условий (галочки) # Можно использовать Markdown для визуального списка gr.Markdown("✔ Отсутствие приветствий") gr.Markdown("✔ Отсутствие деепричастий") # И так далее для всех необходимых пунктов... # Если нужно добавить много таких условий, можно прогрузить их циклом или задать массивом. demo.launch()