Spaces:
Sleeping
Sleeping
fruitpicker01
commited on
Commit
•
da5f556
1
Parent(s):
1b913d3
Update app.py
Browse files
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 = (
|