fruitpicker01 commited on
Commit
173d6ef
·
verified ·
1 Parent(s): 1081aef

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -3
app.py CHANGED
@@ -302,24 +302,39 @@ def generate_final_prompt_from_display(prompt_text, single_approach, is_prompt_1
302
  f"\n{suffix}.\nУбедись, что УМЕСТНО использовал КАЖДЫЙ необходимый термин.\nУбедись, что в SMS без изменений, синонимов и перестановок слов используется наименование продукта:\nУбедись, что в SMS есть следующая ключевая информация:", prompt_text, flags=re.DOTALL)
303
  return prompt_text
304
 
 
 
 
305
  def generate_personalized_sms_wrapper(selected_product, description, product_name, benefits, key_message,
306
  gender, generation, psychotype, business_stage, industry, opf,
307
  chosen_approach, prompt_1, prompt_2):
308
  if "Для формирования промпта выберите хотя бы один личный персональный параметр" in prompt_1 or chosen_approach == "Подход не найден для выбранных параметров.":
309
  gr.Warning("Задайте хотя бы один личный персональный параметр для определения подхода, чтобы был сформирован промпт")
310
- return "", ""
311
  approach_list = [a.strip() for a in chosen_approach.split(',') if a.strip()]
312
  if not approach_list:
313
  gr.Warning("Задайте хотя бы один личный персональный параметр для определения подхода, чтобы был сформирован промпт")
314
- return "", ""
315
  chosen_single_approach_1 = random.choice(approach_list) if len(approach_list) > 1 else approach_list[0]
316
  chosen_single_approach_2 = random.choice(approach_list) if len(approach_list) > 1 else approach_list[0]
317
  final_prompt_1 = generate_final_prompt_from_display(prompt_1, chosen_single_approach_1, is_prompt_1=True)
318
  final_prompt_2 = generate_final_prompt_from_display(prompt_2, chosen_single_approach_2, is_prompt_1=False)
 
 
319
  sms_1 = generate_message_with_retry(final_prompt_1)
320
  sms_2 = generate_message_with_retry(final_prompt_2)
321
  personalization_params = [gender, generation, psychotype, business_stage, industry, opf]
322
  save_user_request_to_github(selected_product, description, product_name, benefits, key_message, chosen_approach, personalization_params)
 
 
 
 
 
 
 
 
 
 
323
  return sms_1, sms_2
324
 
325
  def on_load_previous():
@@ -414,7 +429,7 @@ with gr.Blocks(theme="default") as demo:
414
  prefer_sms_1_btn = gr.Button("Я предпочитаю это SMS (кнопка пока не работает)")
415
  prefer_sms_2_btn = gr.Button("Я предпочитаю это SMS (кнопка пока не работает)")
416
 
417
- regen_btn = gr.Button("Перегенерировать SMS (не нравится ни одно из SMS) (кнопка пока не работает)")
418
 
419
  with gr.Row():
420
  comment_sms_1 = gr.Textbox(label="Комментарий к SMS 1", lines=2, value="")
@@ -428,6 +443,9 @@ with gr.Blocks(theme="default") as demo:
428
  save_sms_1_btn = gr.Button("Сохранить в базу (кнопка пока не работает)")
429
  save_sms_2_btn = gr.Button("Сохранить в базу (кнопка пока не работает)")
430
 
 
 
 
431
  product_dropdown.change(
432
  fn=on_product_change,
433
  inputs=[product_dropdown, description, product_name, benefits, key_message,
@@ -463,6 +481,12 @@ with gr.Blocks(theme="default") as demo:
463
  gender_dropdown, generation_dropdown, psychotype_dropdown,
464
  business_stage_dropdown, industry_dropdown, opf_dropdown,
465
  chosen_approach, prompt_1, prompt_2],
 
 
 
 
 
 
466
  outputs=[sms_1, sms_2]
467
  )
468
 
 
302
  f"\n{suffix}.\nУбедись, что УМЕСТНО использовал КАЖДЫЙ необходимый термин.\nУбедись, что в SMS без изменений, синонимов и перестановок слов используется наименование продукта:\nУбедись, что в SMS есть следующая ключевая информация:", prompt_text, flags=re.DOTALL)
303
  return prompt_text
304
 
305
+ final_prompt_1_state = gr.State("")
306
+ final_prompt_2_state = gr.State("")
307
+
308
  def generate_personalized_sms_wrapper(selected_product, description, product_name, benefits, key_message,
309
  gender, generation, psychotype, business_stage, industry, opf,
310
  chosen_approach, prompt_1, prompt_2):
311
  if "Для формирования промпта выберите хотя бы один личный персональный параметр" in prompt_1 or chosen_approach == "Подход не найден для выбранных параметров.":
312
  gr.Warning("Задайте хотя бы один личный персональный параметр для определения подхода, чтобы был сформирован промпт")
313
+ return "", "", "", ""
314
  approach_list = [a.strip() for a in chosen_approach.split(',') if a.strip()]
315
  if not approach_list:
316
  gr.Warning("Задайте хотя бы один личный персональный параметр для определения подхода, чтобы был сформирован промпт")
317
+ return "", "", "", ""
318
  chosen_single_approach_1 = random.choice(approach_list) if len(approach_list) > 1 else approach_list[0]
319
  chosen_single_approach_2 = random.choice(approach_list) if len(approach_list) > 1 else approach_list[0]
320
  final_prompt_1 = generate_final_prompt_from_display(prompt_1, chosen_single_approach_1, is_prompt_1=True)
321
  final_prompt_2 = generate_final_prompt_from_display(prompt_2, chosen_single_approach_2, is_prompt_1=False)
322
+ print("Final Prompt 1:", final_prompt_1)
323
+ print("Final Prompt 2:", final_prompt_2)
324
  sms_1 = generate_message_with_retry(final_prompt_1)
325
  sms_2 = generate_message_with_retry(final_prompt_2)
326
  personalization_params = [gender, generation, psychotype, business_stage, industry, opf]
327
  save_user_request_to_github(selected_product, description, product_name, benefits, key_message, chosen_approach, personalization_params)
328
+ return sms_1, sms_2, final_prompt_1, final_prompt_2
329
+
330
+ def regen_sms(final_prompt_1, final_prompt_2):
331
+ if not final_prompt_1.strip() or not final_prompt_2.strip():
332
+ gr.Warning("Нечего перегенерировать, сначала создайте SMS.")
333
+ return "", ""
334
+ print("Regen Final Prompt 1:", final_prompt_1)
335
+ print("Regen Final Prompt 2:", final_prompt_2)
336
+ sms_1 = generate_message_with_retry(final_prompt_1)
337
+ sms_2 = generate_message_with_retry(final_prompt_2)
338
  return sms_1, sms_2
339
 
340
  def on_load_previous():
 
429
  prefer_sms_1_btn = gr.Button("Я предпочитаю это SMS (кнопка пока не работает)")
430
  prefer_sms_2_btn = gr.Button("Я предпочитаю это SMS (кнопка пока не работает)")
431
 
432
+ regen_btn = gr.Button("Перегенерировать SMS (не нравится ни одно из SMS)")
433
 
434
  with gr.Row():
435
  comment_sms_1 = gr.Textbox(label="Комментарий к SMS 1", lines=2, value="")
 
443
  save_sms_1_btn = gr.Button("Сохранить в базу (кнопка пока не работает)")
444
  save_sms_2_btn = gr.Button("Сохранить в базу (кнопка пока не работает)")
445
 
446
+ final_prompt_1_state = gr.State("")
447
+ final_prompt_2_state = gr.State("")
448
+
449
  product_dropdown.change(
450
  fn=on_product_change,
451
  inputs=[product_dropdown, description, product_name, benefits, key_message,
 
481
  gender_dropdown, generation_dropdown, psychotype_dropdown,
482
  business_stage_dropdown, industry_dropdown, opf_dropdown,
483
  chosen_approach, prompt_1, prompt_2],
484
+ outputs=[sms_1, sms_2, final_prompt_1_state, final_prompt_2_state]
485
+ )
486
+
487
+ regen_btn.click(
488
+ fn=regen_sms,
489
+ inputs=[final_prompt_1_state, final_prompt_2_state],
490
  outputs=[sms_1, sms_2]
491
  )
492