Spaces:
Sleeping
Sleeping
File size: 7,914 Bytes
f154467 235357d 0779693 293d43b 9f68d05 235357d e9254f3 235357d d196f5f 235357d d196f5f 235357d 593d3df 235357d 6b53224 235357d 0779693 235357d 0779693 235357d 0779693 783515c 7721ac8 5c41f19 d1bdca6 6711778 783515c 7ce2a54 eb20c2a 5c41f19 593d3df b1fd5e3 593d3df ae090c3 593d3df 7721ac8 ae090c3 7721ac8 ebc55c9 ae090c3 593d3df 4c358e9 5c08b1a 593d3df 5c08b1a df1915c 593d3df ae090c3 df1915c 593d3df ae090c3 df1915c 593d3df ae090c3 5c41f19 ae090c3 |
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 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
import gradio as gr
import plotly.graph_objects as go
import random
import time
random.seed(time.time_ns())
# Функция для создания спидометра
def create_gauge(value):
fig = go.Figure(go.Indicator(
mode="gauge+number",
value=value,
gauge={
'axis': {'range': [0, 100]},
'bar': {'color': "black"}, # Цвет стрелки
'steps': [
{'range': [0, 40], 'color': "#55efc4"}, # Мягкий зеленый
{'range': [40, 70], 'color': "#ffeaa7"}, # Желтый
{'range': [70, 100], 'color': "#ff7675"} # Мягкий красный
],
'threshold': {
'line': {'color': "black", 'width': 4},
'thickness': 0.75,
'value': value
}
},
number={'font': {'size': 48}} # Размер шрифта числа
))
# Изменение размеров спидометра и центровка
fig.update_layout(paper_bgcolor="#f8f9fa", # Цвет фона
font={'color': "#2d3436", 'family': "Arial"}, # Цвет текста
width=250, # Уменьшенная ширина
height=150, # Уменьшенная высота
margin=dict(l=20, r=180, t=20, b=20)) # Отступы для центровки
return fig
# Генерация случайных значений при нажатии на кнопку "Проверить"
def get_success_forecast_1():
return create_gauge(random.randint(60, 90))
def get_success_forecast_2():
return create_gauge(random.randint(60, 90))
def get_success_forecast_3():
return create_gauge(random.randint(60, 90))
# Функция, которая вызывает все три генератора и возвращает результаты
def get_all_success_forecasts():
return get_success_forecast_1(), get_success_forecast_2(), get_success_forecast_3()
# Функция для смены вкладки
def change_tab(id):
return gr.Tabs(selected=id)
with gr.Blocks() as demo:
with gr.Tabs() as tabs:
# Вкладка 1: Исходные данные
with gr.TabItem("Исходные данные", id=0):
with gr.Row():
with gr.Column():
desc = gr.Textbox(label="Описание предложения", lines=6) # Увеличенная высота
benefits = gr.Textbox(label="Преимущества", lines=5) # Увеличенная высота
key_message = gr.Textbox(label="Ключевое сообщение", lines=5) # Увеличенная высота
with gr.Column():
gender = gr.Dropdown(label="Пол", choices=["Мужчина", "Женщина", "Не указан"])
generation = gr.Dropdown(label="Поколение", choices=["Поколение Z", "Миллениалы", "Поколение X", "Бэби-бумеры"])
psychotype = gr.Textbox(label="Психотип")
business_stage = gr.Textbox(label="Стадия бизнеса")
industry = gr.Textbox(label="Отрасль")
opf = gr.Textbox(label="ОПФ")
btn_to_prompts = gr.Button("Создать")
btn_to_prompts.click(fn=change_tab, inputs=[gr.Number(value=1, visible=False)], outputs=tabs)
# Вкладка 2: Промпты
with gr.TabItem("Ассистент", id=1):
with gr.Row():
with gr.Column():
non_personalized_prompt = gr.Textbox(label="Задание для копирайтера", lines=25) # Увеличенная высота
with gr.Column():
personalized_prompt = gr.Textbox(label="Задание для редактора", lines=25) # Увеличенная высота
# Вкладка 3: Сообщения
with gr.TabItem("Сообщения", id=2):
# Заголовки столбцов
with gr.Row():
gr.Markdown("### Копирайтер") # Название для столбца "Копирайтер"
gr.Markdown("### Редактор") # Название для столбца "Редактор"
# Первый ряд
with gr.Row():
non_personalized_1 = gr.Textbox(label="Стандартное сообщение 1", lines=4, interactive=False)
personalized_1 = gr.Textbox(label="Персонализированное сообщение 1", lines=4, interactive=False)
# Второй ряд
with gr.Row():
non_personalized_2 = gr.Textbox(label="Стандартное сообщение 2", lines=4, interactive=False)
personalized_2 = gr.Textbox(label="Персонализированное сообщение 2", lines=4, interactive=False)
# Третий ряд
with gr.Row():
non_personalized_3 = gr.Textbox(label="Стандартное сообщение 3", lines=4, interactive=False)
personalized_3 = gr.Textbox(label="Персонализированное сообщение 3", lines=4, interactive=False)
# Четвертый ряд
with gr.Row():
btn_check = gr.Button("Проверить", elem_id="check3")
# Вызов функции, которая генерирует случайные значения для всех трех спидометров
success_forecast_1 = gr.Plot()
success_forecast_2 = gr.Plot()
success_forecast_3 = gr.Plot()
btn_check.click(fn=get_all_success_forecasts,
inputs=[],
outputs=[success_forecast_1, success_forecast_2, success_forecast_3])
# Вкладка 4: Проверка
with gr.TabItem("Проверка", id=3):
# Заголовки столбцов
with gr.Row():
gr.Markdown("")
gr.Markdown("### Корректор") # Название для столбца "Копирайтер"
gr.Markdown("### Аналитик") # Название для столбца "Редактор"
# Первый ряд
with gr.Row():
personalized_message_1 = gr.Textbox(label="Персонализированное сообщение 1", lines=5)
check_message_1 = gr.Textbox(label="Проверка сообщения 1", lines=5)
success_forecast_1 = gr.Plot(label="Прогноз успешности сообщения 1")
# Второй ряд
with gr.Row():
personalized_message_2 = gr.Textbox(label="Персонализированное сообщение 2", lines=5)
check_message_2 = gr.Textbox(label="Проверка сообщения 2", lines=5)
success_forecast_2 = gr.Plot(label="Прогноз успешности сообщения 2")
# Третий ряд
with gr.Row():
personalized_message_3 = gr.Textbox(label="Персонализированное сообщение 3", lines=5)
check_message_3 = gr.Textbox(label="Проверка сообщения 3", lines=5)
success_forecast_3 = gr.Plot(label="Прогноз успешности сообщения 3")
demo.launch() |