fruitpicker01 commited on
Commit
2abbb98
·
verified ·
1 Parent(s): 5363580

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +173 -45
app.py CHANGED
@@ -15,9 +15,9 @@ gc_key = os.getenv('GC_KEY')
15
  token = os.getenv('GITHUB_TOKEN')
16
 
17
  # Авторизация в сервисе GigaChat
18
- chat_pro = GigaChat(credentials=gc_key, model='GigaChat-Pro', verify_ssl_certs=False)
19
- chat_lite = GigaChat(credentials=gc_key, model='GigaChat', verify_ssl_certs=False)
20
- chat_plus = GigaChat(credentials=gc_key, model='GigaChat-Plus', verify_ssl_certs=False)
21
 
22
  # Загрузка данных из Excel-файла
23
  try:
@@ -39,7 +39,6 @@ for sheet_name, df in data.items():
39
  def generate_standard_prompt(description, advantages, *selected_values):
40
  prompt = (
41
  "Сгенерируй смс-сообщение для клиента.\n"
42
- "Объем готового текста: до 250 знаков с пробелами.\n"
43
  "Начни сообщение с призыва к действию с продуктом.\n"
44
  f"Описание предложения: {description}\n"
45
  f"Преимущества: {advantages}\n"
@@ -86,7 +85,7 @@ def generate_message_gpt4o(prompt):
86
  data = {
87
  "model": "chatgpt-4o-latest",
88
  "messages": [{"role": "system", "content": prompt}],
89
- "max_tokens": 700
90
  }
91
  response = requests.post("https://api.openai.com/v1/chat/completions", json=data, headers=headers)
92
  response_data = response.json()
@@ -94,11 +93,21 @@ def generate_message_gpt4o(prompt):
94
  except Exception as e:
95
  return f"Ошибка при обращении к ChatGPT-4o-Latest: {e}"
96
 
 
 
 
 
 
 
 
 
 
97
  def generate_message_gigachat_pro(prompt):
98
  try:
99
  messages = [SystemMessage(content=prompt)]
100
  res = chat_pro(messages)
101
- return res.content.strip()
 
102
  except Exception as e:
103
  return f"Ошибка при обращении к GigaChat-Pro: {e}"
104
 
@@ -107,7 +116,8 @@ def generate_message_gigachat_lite(prompt):
107
  time.sleep(2)
108
  messages = [SystemMessage(content=prompt)]
109
  res = chat_lite(messages)
110
- return res.content.strip()
 
111
  except Exception as e:
112
  return f"Ошибка при обращении к GigaChat-Lite: {e}"
113
 
@@ -116,11 +126,12 @@ def generate_message_gigachat_plus(prompt):
116
  time.sleep(2)
117
  messages = [SystemMessage(content=prompt)]
118
  res = chat_plus(messages)
119
- return res.content.strip()
 
120
  except Exception as e:
121
- return f"Ошибка при обращении к GigaChat-Lite+: {e}"
122
 
123
- # Функция для обработки нажатия кнопки Submit и последовательного отображения результатов
124
  def generate_messages(description, advantages, *selected_values):
125
  standard_prompt = generate_standard_prompt(description, advantages, *selected_values)
126
 
@@ -135,21 +146,32 @@ def generate_messages(description, advantages, *selected_values):
135
  yield results["prompt"], "", "", "", "", "Генерация стандартного промпта завершена"
136
 
137
  results["gpt4o"] = generate_message_gpt4o(standard_prompt)
138
- yield results["prompt"], results["gpt4o"], "", "", "", "Сообщение GPT-4o сгенерировано"
 
 
139
 
140
  results["gigachat_pro"] = generate_message_gigachat_pro(standard_prompt)
141
- yield results["prompt"], results["gpt4o"], results["gigachat_pro"], "", "", "Сообщение GigaChat-Pro сгенерировано"
 
 
 
142
  time.sleep(2)
143
 
144
  results["gigachat_lite"] = generate_message_gigachat_lite(standard_prompt)
145
- yield results["prompt"], results["gpt4o"], results["gigachat_pro"], results["gigachat_lite"], "", "Сообщение GigaChat-Lite сгенерировано"
 
 
 
146
  time.sleep(2)
147
 
148
  results["gigachat_plus"] = generate_message_gigachat_plus(standard_prompt)
149
- yield results["prompt"], results["gpt4o"], results["gigachat_pro"], results["gigachat_lite"], results["gigachat_plus"], "Все сообщения сгенерированы"
 
 
150
 
151
  return results
152
 
 
153
  # Функция для генерации персонализированного промпта
154
  def generate_personalization_prompt(*selected_values):
155
  prompt = "Адаптируй, не превышая длину сообщения в 250 знаков с пробелами, текст с учетом следующих особенностей:\n"
@@ -169,31 +191,42 @@ def perform_personalization(standard_message, personalization_prompt):
169
  full_prompt = f"{personalization_prompt}\n\nТекст для адаптации:\n{standard_message}"
170
  return generate_message_gpt4o(full_prompt)
171
 
 
172
  def perform_personalization_gigachat(standard_message, personalization_prompt, model):
173
  full_prompt = f"{personalization_prompt}\n\nТекст для адаптации:\n{standard_message}"
174
  if model == "gigachat_pro":
175
- return generate_message_gigachat_pro(full_prompt)
176
  elif model == "gigachat_lite":
177
- return generate_message_gigachat_lite(full_prompt)
178
  elif model == "gigachat_plus":
179
- return generate_message_gigachat_plus(full_prompt)
 
180
 
181
- # Функция для выполнения персонализации с использованием yield
182
  def personalize_messages_with_yield(gpt4o_message, gigachat_pro_message, gigachat_lite_message, gigachat_plus_message, *selected_values):
183
  personalization_prompt = generate_personalization_prompt(*selected_values)
184
  yield personalization_prompt, "", "", "", "", "Промпт для персонализации сгенерирован"
185
 
186
  personalized_message_gpt4o = perform_personalization(gpt4o_message, personalization_prompt)
187
- yield personalization_prompt, personalized_message_gpt4o, "", "", "", "Персонализированное сообщение GPT-4o сгенерировано"
 
 
188
 
189
  personalized_message_gigachat_pro = perform_personalization_gigachat(gigachat_pro_message, personalization_prompt, "gigachat_pro")
190
- yield personalization_prompt, personalized_message_gpt4o, personalized_message_gigachat_pro, "", "", "Персонализированное сообщение GigaChat-Pro сгенерировано"
 
 
191
 
192
  personalized_message_gigachat_lite = perform_personalization_gigachat(gigachat_lite_message, personalization_prompt, "gigachat_lite")
193
- yield personalization_prompt, personalized_message_gpt4o, personalized_message_gigachat_pro, personalized_message_gigachat_lite, "", "Персонализированное сообщение GigaChat-Lite с��енерировано"
 
 
194
 
195
  personalized_message_gigachat_plus = perform_personalization_gigachat(gigachat_plus_message, personalization_prompt, "gigachat_plus")
196
- yield personalization_prompt, personalized_message_gpt4o, personalized_message_gigachat_pro, personalized_message_gigachat_lite, personalized_message_gigachat_plus, "Все персонализированные сообщения сгенерированы"
 
 
 
197
 
198
  # Функция для генерации промпта проверки текста
199
  def generate_error_check_prompt():
@@ -268,41 +301,43 @@ def check_errors_with_yield(*personalized_messages):
268
  yield error_check_prompt, error_message_gpt4o, error_message_gigachat_pro, error_message_gigachat_lite, error_message_gigachat_plus, "Все результаты проверки сгенерированы"
269
 
270
 
271
- def save_to_github(message, model_name):
272
- # Формируем уникальное имя файла на основе текущего времени
273
- timestamp = int(time.time())
274
- file_name = f"file_{timestamp}.json"
275
-
276
- # Данные для записи
277
- file_content = {
278
  "Модель": model_name,
279
- "Сообщение": message
 
 
 
 
 
 
 
 
 
 
 
 
280
  }
281
 
282
  # Преобразуем контент в JSON-строку и кодируем в base64
283
- file_content_encoded = base64.b64encode(json.dumps(file_content).encode()).decode()
284
 
285
  # Параметры для GitHub API
286
  repo = "fruitpicker01/Storage_1"
287
- path = file_name
288
  url = f"https://api.github.com/repos/{repo}/contents/{path}"
289
  headers = {
290
  "Authorization": f"token {token}",
291
  "Content-Type": "application/json"
292
  }
293
  data = {
294
- "message": f"Добавлен новый файл {file_name}",
295
  "content": file_content_encoded
296
  }
297
 
298
  # Отправка POST-запроса на GitHub API для создания файла в репозитории
299
  response = requests.put(url, headers=headers, data=json.dumps(data))
300
-
301
- if response.status_code == 201:
302
- print(f"Файл {file_name} успешно добавлен в репозиторий.")
303
- else:
304
- print(f"Ошибка при добавлении файла: {response.status_code}")
305
- print(response.json())
306
 
307
 
308
  # Создание интерфейса Gradio
@@ -342,7 +377,7 @@ with gr.Blocks() as demo:
342
  submit_btn = gr.Button("1. Создать неперсонализированное сообщение") # Оранжевая кнопка по умолчанию
343
 
344
  with gr.Column(scale=2):
345
- prompt_display = gr.Textbox(label="Неперсонализированный промпт", lines=28, interactive=False)
346
  output_text_gpt4o = gr.Textbox(label="Неперсонализированное сообщение GPT-4o", lines=3, interactive=False)
347
  output_text_gigachat_pro = gr.Textbox(label="Неперсонализированное сообщение GigaChat-Pro", lines=3, interactive=False)
348
  output_text_gigachat_lite = gr.Textbox(label="Неперсонализированное сообщение GigaChat-Lite", lines=3, interactive=False)
@@ -369,6 +404,21 @@ with gr.Blocks() as demo:
369
  personalized_output_text_gigachat_plus := gr.Textbox(label="Персонализированное сообщение GigaChat-Lite+", lines=6, interactive=False)
370
  ]
371
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
372
 
373
  # Отдельная строка для кнопок с использованием пустой колонки
374
  with gr.Row():
@@ -379,15 +429,93 @@ with gr.Blocks() as demo:
379
  save_gigachat_plus_btn = gr.Button("👍")
380
 
381
  # Привязка кнопок к функциям сохранения
382
- save_gpt4o_btn.click(fn=lambda x: save_to_github(x, "GPT-4o"), inputs=personalized_output_text_gpt4o, outputs=None)
383
- save_gigachat_pro_btn.click(fn=lambda x: save_to_github(x, "GigaChat-Pro"), inputs=personalized_output_text_gigachat_pro, outputs=None)
384
- save_gigachat_lite_btn.click(fn=lambda x: save_to_github(x, "GigaChat-Lite"), inputs=personalized_output_text_gigachat_lite, outputs=None)
385
- save_gigachat_plus_btn.click(fn=lambda x: save_to_github(x, "GigaChat-Lite+"), inputs=personalized_output_text_gigachat_plus, outputs=None)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
386
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
387
 
388
  # Использование сохраненных переменных в следующем блоке
389
  with gr.Row():
390
- check_errors_btn = gr.Button("3. Проверить текст (нажимать только после кнопки 2)", elem_id="check_errors_button")
391
 
392
  with gr.Row():
393
  check_errors_btn.click(
 
15
  token = os.getenv('GITHUB_TOKEN')
16
 
17
  # Авторизация в сервисе GigaChat
18
+ chat_pro = GigaChat(credentials=gc_key, model='GigaChat-Pro', max_tokens=68, verify_ssl_certs=False)
19
+ chat_lite = GigaChat(credentials=gc_key, model='GigaChat', max_tokens=68, verify_ssl_certs=False)
20
+ chat_plus = GigaChat(credentials=gc_key, model='GigaChat-Plus', max_tokens=68, verify_ssl_certs=False)
21
 
22
  # Загрузка данных из Excel-файла
23
  try:
 
39
  def generate_standard_prompt(description, advantages, *selected_values):
40
  prompt = (
41
  "Сгенерируй смс-сообщение для клиента.\n"
 
42
  "Начни сообщение с призыва к действию с продуктом.\n"
43
  f"Описание предложения: {description}\n"
44
  f"Преимущества: {advantages}\n"
 
85
  data = {
86
  "model": "chatgpt-4o-latest",
87
  "messages": [{"role": "system", "content": prompt}],
88
+ "max_tokens": 101
89
  }
90
  response = requests.post("https://api.openai.com/v1/chat/completions", json=data, headers=headers)
91
  response_data = response.json()
 
93
  except Exception as e:
94
  return f"Ошибка при обращении к ChatGPT-4o-Latest: {e}"
95
 
96
+ def clean_message(message):
97
+ # Если сообщение не заканчивается на точку или восклицательный знак, обрезаем его до последней точки
98
+ if not message.endswith(('.', '!', '?')):
99
+ last_period = message.rfind('.')
100
+ if last_period != -1:
101
+ message = message[:last_period + 1]
102
+ return message
103
+
104
+ # Обновленные функции генерации сообщений с учетом обрезки незаконченных предложений
105
  def generate_message_gigachat_pro(prompt):
106
  try:
107
  messages = [SystemMessage(content=prompt)]
108
  res = chat_pro(messages)
109
+ cleaned_message = clean_message(res.content.strip())
110
+ return cleaned_message
111
  except Exception as e:
112
  return f"Ошибка при обращении к GigaChat-Pro: {e}"
113
 
 
116
  time.sleep(2)
117
  messages = [SystemMessage(content=prompt)]
118
  res = chat_lite(messages)
119
+ cleaned_message = clean_message(res.content.strip())
120
+ return cleaned_message
121
  except Exception as e:
122
  return f"Ошибка при обращении к GigaChat-Lite: {e}"
123
 
 
126
  time.sleep(2)
127
  messages = [SystemMessage(content=prompt)]
128
  res = chat_plus(messages)
129
+ cleaned_message = clean_message(res.content.strip())
130
+ return cleaned_message
131
  except Exception as e:
132
+ return f"Ошибка при обращении к GigaChat-Plus: {e}"
133
 
134
+ # Обновляем генерацию сообщений для отображения в интерфейсе
135
  def generate_messages(description, advantages, *selected_values):
136
  standard_prompt = generate_standard_prompt(description, advantages, *selected_values)
137
 
 
146
  yield results["prompt"], "", "", "", "", "Генерация стандартного промпта завершена"
147
 
148
  results["gpt4o"] = generate_message_gpt4o(standard_prompt)
149
+ gpt4o_length = len(results["gpt4o"])
150
+ gpt4o_display = f"{results['gpt4o']}\n\n------\nКоличество знаков: {gpt4o_length}"
151
+ yield results["prompt"], gpt4o_display, "", "", "", "Сообщение GPT-4o сгенерировано"
152
 
153
  results["gigachat_pro"] = generate_message_gigachat_pro(standard_prompt)
154
+ gigachat_pro_length = len(results["gigachat_pro"])
155
+ gigachat_pro_display = f"{results['gigachat_pro']}\n\n------\nКоличество знаков: {gigachat_pro_length}"
156
+ yield results["prompt"], gpt4o_display, gigachat_pro_display, "", "", "Сообщение GigaChat-Pro сгенерировано"
157
+
158
  time.sleep(2)
159
 
160
  results["gigachat_lite"] = generate_message_gigachat_lite(standard_prompt)
161
+ gigachat_lite_length = len(results["gigachat_lite"])
162
+ gigachat_lite_display = f"{results['gigachat_lite']}\n\n------\nКоличество знаков: {gigachat_lite_length}"
163
+ yield results["prompt"], gpt4o_display, gigachat_pro_display, gigachat_lite_display, "", "Сообщение GigaChat-Lite сгенерировано"
164
+
165
  time.sleep(2)
166
 
167
  results["gigachat_plus"] = generate_message_gigachat_plus(standard_prompt)
168
+ gigachat_plus_length = len(results["gigachat_plus"])
169
+ gigachat_plus_display = f"{results['gigachat_plus']}\n\n------\nКоличество знаков: {gigachat_plus_length}"
170
+ yield results["prompt"], gpt4o_display, gigachat_pro_display, gigachat_lite_display, gigachat_plus_display, "Все сообщения сгенерированы"
171
 
172
  return results
173
 
174
+
175
  # Функция для генерации персонализированного промпта
176
  def generate_personalization_prompt(*selected_values):
177
  prompt = "Адаптируй, не превышая длину сообщения в 250 знаков с пробелами, текст с учетом следующих особенностей:\n"
 
191
  full_prompt = f"{personalization_prompt}\n\nТекст для адаптации:\n{standard_message}"
192
  return generate_message_gpt4o(full_prompt)
193
 
194
+ # Также обновляем функции персонализации
195
  def perform_personalization_gigachat(standard_message, personalization_prompt, model):
196
  full_prompt = f"{personalization_prompt}\n\nТекст для адаптации:\n{standard_message}"
197
  if model == "gigachat_pro":
198
+ result = generate_message_gigachat_pro(full_prompt)
199
  elif model == "gigachat_lite":
200
+ result = generate_message_gigachat_lite(full_prompt)
201
  elif model == "gigachat_plus":
202
+ result = generate_message_gigachat_plus(full_prompt)
203
+ return clean_message(result)
204
 
205
+ # Обновляем блок персонализации
206
  def personalize_messages_with_yield(gpt4o_message, gigachat_pro_message, gigachat_lite_message, gigachat_plus_message, *selected_values):
207
  personalization_prompt = generate_personalization_prompt(*selected_values)
208
  yield personalization_prompt, "", "", "", "", "Промпт для персонализации сгенерирован"
209
 
210
  personalized_message_gpt4o = perform_personalization(gpt4o_message, personalization_prompt)
211
+ gpt4o_length = len(personalized_message_gpt4o)
212
+ gpt4o_display = f"{personalized_message_gpt4o}\n\n------\nКоличество знаков: {gpt4o_length}"
213
+ yield personalization_prompt, gpt4o_display, "", "", "", "Персонализированное сообщение GPT-4o сгенерировано"
214
 
215
  personalized_message_gigachat_pro = perform_personalization_gigachat(gigachat_pro_message, personalization_prompt, "gigachat_pro")
216
+ gigachat_pro_length = len(personalized_message_gigachat_pro)
217
+ gigachat_pro_display = f"{personalized_message_gigachat_pro}\n\n------\nКоличество знаков: {gigachat_pro_length}"
218
+ yield personalization_prompt, gpt4o_display, gigachat_pro_display, "", "", "Персонализированное сообщение GigaChat-Pro сгенерировано"
219
 
220
  personalized_message_gigachat_lite = perform_personalization_gigachat(gigachat_lite_message, personalization_prompt, "gigachat_lite")
221
+ gigachat_lite_length = len(personalized_message_gigachat_lite)
222
+ gigachat_lite_display = f"{personalized_message_gigachat_lite}\n\n------\nКоличество знаков: {gigachat_lite_length}"
223
+ yield personalization_prompt, gpt4o_display, gigachat_pro_display, gigachat_lite_display, "", "Персонализированное сообщение GigaChat-Lite сгенерировано"
224
 
225
  personalized_message_gigachat_plus = perform_personalization_gigachat(gigachat_plus_message, personalization_prompt, "gigachat_plus")
226
+ gigachat_plus_length = len(personalized_message_gigachat_plus)
227
+ gigachat_plus_display = f"{personalized_message_gigachat_plus}\n\n------\nКоличество знаков: {gigachat_plus_length}"
228
+ yield personalization_prompt, gpt4o_display, gigachat_pro_display, gigachat_lite_display, gigachat_plus_display, "Все персонализированные сообщения сгенерированы"
229
+
230
 
231
  # Функция для генерации промпта проверки текста
232
  def generate_error_check_prompt():
 
301
  yield error_check_prompt, error_message_gpt4o, error_message_gigachat_pro, error_message_gigachat_lite, error_message_gigachat_plus, "Все результаты проверки сгенерированы"
302
 
303
 
304
+ def save_to_github(personalized_message, model_name, comment, corrected_message, description, advantages, non_personalized_prompt, non_personalized_message, gender, generation, psychotype, business_stage, industry, legal_form):
305
+ # Собираем все данные в один словарь
306
+ data_to_save = {
 
 
 
 
307
  "Модель": model_name,
308
+ "Персонализированное сообщение": personalized_message,
309
+ "Комментарий": comment,
310
+ "Откорректированное сообщение": corrected_message,
311
+ "Описание предложения": description,
312
+ "Преимущества": advantages,
313
+ "Неперсонализированный промпт": non_personalized_prompt,
314
+ "Неперсонализированное сообщение": non_personalized_message,
315
+ "Пол": gender,
316
+ "Поколение": generation,
317
+ "Психотип": psychotype,
318
+ "Стадия бизнеса": business_stage,
319
+ "Отрасль": industry,
320
+ "ОПФ": legal_form
321
  }
322
 
323
  # Преобразуем контент в JSON-строку и кодируем в base64
324
+ file_content_encoded = base64.b64encode(json.dumps(data_to_save).encode()).decode()
325
 
326
  # Параметры для GitHub API
327
  repo = "fruitpicker01/Storage_1"
328
+ path = f"file_{int(time.time())}.json"
329
  url = f"https://api.github.com/repos/{repo}/contents/{path}"
330
  headers = {
331
  "Authorization": f"token {token}",
332
  "Content-Type": "application/json"
333
  }
334
  data = {
335
+ "message": f"Добавлен новый файл {path}",
336
  "content": file_content_encoded
337
  }
338
 
339
  # Отправка POST-запроса на GitHub API для создания файла в репозитории
340
  response = requests.put(url, headers=headers, data=json.dumps(data))
 
 
 
 
 
 
341
 
342
 
343
  # Создание интерфейса Gradio
 
377
  submit_btn = gr.Button("1. Создать неперсонализированное сообщение") # Оранжевая кнопка по умолчанию
378
 
379
  with gr.Column(scale=2):
380
+ prompt_display = gr.Textbox(label="Неперсонализированный промпт", lines=20, interactive=False)
381
  output_text_gpt4o = gr.Textbox(label="Неперсонализированное сообщение GPT-4o", lines=3, interactive=False)
382
  output_text_gigachat_pro = gr.Textbox(label="Неперсонализированное сообщение GigaChat-Pro", lines=3, interactive=False)
383
  output_text_gigachat_lite = gr.Textbox(label="Неперсонализированное сообщение GigaChat-Lite", lines=3, interactive=False)
 
404
  personalized_output_text_gigachat_plus := gr.Textbox(label="Персонализированное сообщение GigaChat-Lite+", lines=6, interactive=False)
405
  ]
406
  )
407
+
408
+ with gr.Row():
409
+ gr.Markdown("*Комментарий (опционально):*")
410
+ comment_gpt4o = gr.Textbox(label="", lines=3)
411
+ comment_gigachat_pro = gr.Textbox(label="", lines=3)
412
+ comment_gigachat_lite = gr.Textbox(label="", lines=3)
413
+ comment_gigachat_plus = gr.Textbox(label="", lines=3)
414
+
415
+ with gr.Row():
416
+ gr.Markdown("*Откорректированное сообщение (опционально):*")
417
+ corrected_gpt4o = gr.Textbox(label="", lines=3)
418
+ corrected_gigachat_pro = gr.Textbox(label="", lines=3)
419
+ corrected_gigachat_lite = gr.Textbox(label="", lines=3)
420
+ corrected_gigachat_plus = gr.Textbox(label="", lines=3)
421
+
422
 
423
  # Отдельная строка для кнопок с использованием пустой колонки
424
  with gr.Row():
 
429
  save_gigachat_plus_btn = gr.Button("👍")
430
 
431
  # Привязка кнопок к функциям сохранения
432
+ save_gpt4o_btn.click(
433
+ fn=lambda personalized_message, comment, corrected_message, description, advantages, non_personalized_prompt, non_personalized_message, gender, generation, psychotype, business_stage, industry, legal_form:
434
+ save_to_github(personalized_message, "GPT-4o", comment, corrected_message, description, advantages, non_personalized_prompt, non_personalized_message, gender, generation, psychotype, business_stage, industry, legal_form),
435
+ inputs=[
436
+ personalized_output_text_gpt4o,
437
+ comment_gpt4o,
438
+ corrected_gpt4o,
439
+ description_input,
440
+ advantages_input,
441
+ prompt_display,
442
+ output_text_gpt4o,
443
+ selections[0], # Пол
444
+ selections[1], # Поколение
445
+ selections[2], # Психотип
446
+ selections[3], # Стадия бизнеса
447
+ selections[4], # Отрасль
448
+ selections[5] # ОПФ
449
+ ],
450
+ outputs=None
451
+ )
452
 
453
+ save_gigachat_pro_btn.click(
454
+ fn=lambda personalized_message, comment, corrected_message, description, advantages, non_personalized_prompt, non_personalized_message, gender, generation, psychotype, business_stage, industry, legal_form:
455
+ save_to_github(personalized_message, "GigaChat-Pro", comment, corrected_message, description, advantages, non_personalized_prompt, non_personalized_message, gender, generation, psychotype, business_stage, industry, legal_form),
456
+ inputs=[
457
+ personalized_output_text_gigachat_pro,
458
+ comment_gigachat_pro,
459
+ corrected_gigachat_pro,
460
+ description_input,
461
+ advantages_input,
462
+ prompt_display,
463
+ output_text_gigachat_pro,
464
+ selections[0], # Пол
465
+ selections[1], # Поколение
466
+ selections[2], # Психотип
467
+ selections[3], # Стадия бизнеса
468
+ selections[4], # Отрасль
469
+ selections[5] # ОПФ
470
+ ],
471
+ outputs=None
472
+ )
473
+
474
+ save_gigachat_lite_btn.click(
475
+ fn=lambda personalized_message, comment, corrected_message, description, advantages, non_personalized_prompt, non_personalized_message, gender, generation, psychotype, business_stage, industry, legal_form:
476
+ save_to_github(personalized_message, "GigaChat-Lite", comment, corrected_message, description, advantages, non_personalized_prompt, non_personalized_message, gender, generation, psychotype, business_stage, industry, legal_form),
477
+ inputs=[
478
+ personalized_output_text_gigachat_lite,
479
+ comment_gigachat_lite,
480
+ corrected_gigachat_lite,
481
+ description_input,
482
+ advantages_input,
483
+ prompt_display,
484
+ output_text_gigachat_lite,
485
+ selections[0], # Пол
486
+ selections[1], # Поколение
487
+ selections[2], # Психотип
488
+ selections[3], # Стадия бизнеса
489
+ selections[4], # Отрасль
490
+ selections[5] # ОПФ
491
+ ],
492
+ outputs=None
493
+ )
494
+
495
+ save_gigachat_plus_btn.click(
496
+ fn=lambda personalized_message, comment, corrected_message, description, advantages, non_personalized_prompt, non_personalized_message, gender, generation, psychotype, business_stage, industry, legal_form:
497
+ save_to_github(personalized_message, "GigaChat-Lite+", comment, corrected_message, description, advantages, non_personalized_prompt, non_personalized_message, gender, generation, psychotype, business_stage, industry, legal_form),
498
+ inputs=[
499
+ personalized_output_text_gigachat_plus,
500
+ comment_gigachat_plus,
501
+ corrected_gigachat_plus,
502
+ description_input,
503
+ advantages_input,
504
+ prompt_display,
505
+ output_text_gigachat_plus,
506
+ selections[0], # Пол
507
+ selections[1], # Поколение
508
+ selections[2], # Психотип
509
+ selections[3], # Стадия бизнеса
510
+ selections[4], # Отрасль
511
+ selections[5] # ОПФ
512
+ ],
513
+ outputs=None
514
+ )
515
 
516
  # Использование сохраненных переменных в следующем блоке
517
  with gr.Row():
518
+ check_errors_btn = gr.Button("3. Проверить текст (нажимать только после кнопки 2) - экспериментальная фича, качество пока крайне низкое", elem_id="check_errors_button")
519
 
520
  with gr.Row():
521
  check_errors_btn.click(