Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
|