fruitpicker01 commited on
Commit
da5f556
1 Parent(s): 1b913d3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -0
app.py CHANGED
@@ -32,6 +32,68 @@ for sheet_name, df in data.items():
32
  print(f"Ошибка при обработке данных листа {sheet_name}: {e}")
33
  features[sheet_name] = {}
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  # Функция для создания задания для копирайтера
36
  def generate_standard_prompt(description, advantages, key_message, *selected_values):
37
  prompt = (
 
32
  print(f"Ошибка при обработке данных листа {sheet_name}: {e}")
33
  features[sheet_name] = {}
34
 
35
+ # Функция для создания спидометра
36
+ def create_gauge(value):
37
+ fig = go.Figure(go.Indicator(
38
+ mode="gauge+number",
39
+ value=value,
40
+ gauge={
41
+ 'axis': {'range': [0, 100]},
42
+ 'bar': {'color': "black"}, # Цвет стрелки
43
+ 'steps': [
44
+ {'range': [0, 40], 'color': "#55efc4"}, # Мягкий зеленый
45
+ {'range': [40, 70], 'color': "#ffeaa7"}, # Желтый
46
+ {'range': [70, 100], 'color': "#ff7675"} # Мягкий красный
47
+ ],
48
+ 'threshold': {
49
+ 'line': {'color': "black", 'width': 4},
50
+ 'thickness': 0.75,
51
+ 'value': value
52
+ }
53
+ },
54
+ number={'font': {'size': 48}} # Размер шрифта числа
55
+ ))
56
+ fig.update_layout(paper_bgcolor="#f8f9fa", font={'color': "#2d3436", 'family': "Arial"}, width=250, height=150)
57
+ return fig
58
+
59
+ # Функция для генерации случайных значений спидометров
60
+ def generate_random_gauges():
61
+ return create_gauge(random.randint(60, 90)), create_gauge(random.randint(60, 90)), create_gauge(random.randint(60, 90))
62
+
63
+ # Функция для смены вкладки
64
+ def change_tab(id):
65
+ return gr.Tabs(selected=id)
66
+
67
+ # Вспомогательная функция для добавления префиксов и суффиксов
68
+ def add_prefix_suffix(prompt, prefix, suffix):
69
+ return f"{prefix}\n{prompt}\n{suffix}"
70
+
71
+ # Функция для обрезки сообщения до последнего знака препинания
72
+ def clean_message(message):
73
+ if not message.endswith(('.', '!', '?')):
74
+ last_period = max(message.rfind('.'), message.rfind('!'), message.rfind('?'))
75
+ if last_period != -1:
76
+ message = message[:last_period + 1]
77
+ return message
78
+
79
+ # Функция для генерации сообщения с GigaChat Pro
80
+ def generate_message_gigachat_pro(prompt):
81
+ try:
82
+ messages = [SystemMessage(content=prompt)]
83
+ res = chat_pro(messages)
84
+ cleaned_message = clean_message(res.content.strip())
85
+ return cleaned_message
86
+ except Exception as e:
87
+ return f"Ошибка при обращении к GigaChat-Pro: {e}"
88
+
89
+ # Функция для повторной генерации сообщения, пока оно не станет короче 250 знаков
90
+ def generate_message_gigachat_pro_with_retry(prompt):
91
+ for _ in range(10):
92
+ message = generate_message_gigachat_pro(prompt)
93
+ if len(message) <= 250:
94
+ return message
95
+ return message
96
+
97
  # Функция для создания задания для копирайтера
98
  def generate_standard_prompt(description, advantages, key_message, *selected_values):
99
  prompt = (