fruitpicker01 commited on
Commit
5a5790e
1 Parent(s): 8a62f8e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -17
app.py CHANGED
@@ -68,6 +68,8 @@ for sheet_name, df in data.items():
68
  try:
69
  if sheet_name == "Пол Поколение Психотип":
70
  features[sheet_name] = df.set_index(['Пол', 'Поколение', 'Психотип'])['Инструкция'].to_dict()
 
 
71
  else:
72
  features[sheet_name] = df.set_index(df.columns[0]).to_dict()[df.columns[1]]
73
  except Exception as e:
@@ -657,34 +659,59 @@ def clean_prompt_for_display(prompt, prefixes, suffixes):
657
  def generate_all_messages(desc, benefits, key_message, gender, generation, psychotype, business_stage, industry, opf):
658
  standard_prompt = generate_standard_prompt(desc, benefits, key_message)
659
  yield standard_prompt, None, None, None
660
- prefixes = [
661
- "Начни сообщение с призыва к действию с продуктом.",
662
- "Начни сообщение с указания на пользу продукта. Используй глагол в побудительном наклонении.",
663
- "Начни сообщение с вопроса, который указывает на пользу продукта для клиента."
664
- ]
665
- suffixes = [
666
- "Убедись, что готовый текст начинается с призыва к действию с продуктом.",
667
- "Убедись, что готовый текст начинается с указания на пользу продукта и использования глагола в побудительном наклонении.",
668
- "Убедись, что готовый текст начинается с вопроса, который указывает на пользу продукта для клиента."
669
- ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
670
  non_personalized_messages = ''
671
  personalized_messages = ''
672
  flag = 1
673
- for i in range(3):
674
- current_prefix = prefixes[i]
 
 
 
675
  personalization_prompt = generate_personalization_prompt(
676
  key_message, gender, generation, psychotype, business_stage, industry, opf,
677
- prefix=prefixes[i], suffix=suffixes[i]
678
  )
679
- display_personalization_prompt = clean_prompt_for_display(personalization_prompt, prefixes, suffixes)
680
  if flag == 1:
681
  yield standard_prompt, display_personalization_prompt, None, None
682
  flag += 1
683
- prompt = add_prefix_suffix(standard_prompt, prefixes[i], suffixes[i])
684
  non_personalized_message = generate_message_mistral_with_retry(prompt, current_prefix, desc, key_message)
685
  non_personalized_length = len(non_personalized_message)
686
  non_personalized_display = f"{non_personalized_message}\n------\nКоличество знаков: {non_personalized_length}"
687
- # Добавляем новое сообщение с двумя пустыми строками
688
  if non_personalized_messages:
689
  non_personalized_messages += '\n\n' + non_personalized_display
690
  else:
@@ -697,7 +724,6 @@ def generate_all_messages(desc, benefits, key_message, gender, generation, psych
697
  personalized_message = generate_message_mistral_with_retry(full_personalized_prompt, current_prefix, desc, key_message)
698
  personalized_length = len(personalized_message)
699
  personalized_display = f"{personalized_message}\n------\nКоличество знаков: {personalized_length}"
700
- # Добавляем новое сообщение с двумя пустыми строками
701
  if personalized_messages:
702
  personalized_messages += '\n\n' + personalized_display
703
  else:
 
68
  try:
69
  if sheet_name == "Пол Поколение Психотип":
70
  features[sheet_name] = df.set_index(['Пол', 'Поколение', 'Психотип'])['Инструкция'].to_dict()
71
+ elif sheet_name == "Подход":
72
+ features[sheet_name] = df.set_index(['Пол', 'Поколение', 'Психотип'])['Подход'].to_dict()
73
  else:
74
  features[sheet_name] = df.set_index(df.columns[0]).to_dict()[df.columns[1]]
75
  except Exception as e:
 
659
  def generate_all_messages(desc, benefits, key_message, gender, generation, psychotype, business_stage, industry, opf):
660
  standard_prompt = generate_standard_prompt(desc, benefits, key_message)
661
  yield standard_prompt, None, None, None
662
+
663
+ # Map approach names to prefixes and suffixes
664
+ approach_mapping = {
665
+ "Указание на пользу": (
666
+ "Начни сообщение с указания на пользу продукта. Используй глагол в побудительном наклонении.",
667
+ "Убедись, что готовый текст начинается с указания на пользу продукта и использования глагола в побудительном наклонении."
668
+ ),
669
+ "Призыв к действию": (
670
+ "Начни сообщение с призыва к действию с продуктом.",
671
+ "Убедись, что готовый текст начинается с призыва к действию с продуктом."
672
+ ),
673
+ "Вопрос": (
674
+ "Начни сообщение с вопроса, который указывает на пользу продукта для клиента.",
675
+ "Убедись, что готовый текст начинается с вопроса, который указывает на пользу продукта для клиента."
676
+ )
677
+ }
678
+
679
+ # Get the approaches from the "Подход" sheet
680
+ approaches_sheet = features.get("Подход", {})
681
+ key = (gender, generation, psychotype)
682
+
683
+ if not gender or not generation or not psychotype:
684
+ gr.Warning("Необходимо выбрать Пол, Поколение и Психотип для определения подхода.")
685
+ return
686
+
687
+ approach_list_str = approaches_sheet.get(key, "")
688
+ if not approach_list_str:
689
+ gr.Warning("Подход не найден для выбранных параметров.")
690
+ return
691
+
692
+ approach_list = [a.strip() for a in approach_list_str.split(",")]
693
+
694
+ # Now generate messages for the specified approaches
695
  non_personalized_messages = ''
696
  personalized_messages = ''
697
  flag = 1
698
+ for approach_name in approach_list:
699
+ if approach_name not in approach_mapping:
700
+ gr.Warning(f"Неизвестный подход: {approach_name}")
701
+ continue
702
+ current_prefix, current_suffix = approach_mapping[approach_name]
703
  personalization_prompt = generate_personalization_prompt(
704
  key_message, gender, generation, psychotype, business_stage, industry, opf,
705
+ prefix=current_prefix, suffix=current_suffix
706
  )
707
+ display_personalization_prompt = clean_prompt_for_display(personalization_prompt, [current_prefix], [current_suffix])
708
  if flag == 1:
709
  yield standard_prompt, display_personalization_prompt, None, None
710
  flag += 1
711
+ prompt = add_prefix_suffix(standard_prompt, current_prefix, current_suffix)
712
  non_personalized_message = generate_message_mistral_with_retry(prompt, current_prefix, desc, key_message)
713
  non_personalized_length = len(non_personalized_message)
714
  non_personalized_display = f"{non_personalized_message}\n------\nКоличество знаков: {non_personalized_length}"
 
715
  if non_personalized_messages:
716
  non_personalized_messages += '\n\n' + non_personalized_display
717
  else:
 
724
  personalized_message = generate_message_mistral_with_retry(full_personalized_prompt, current_prefix, desc, key_message)
725
  personalized_length = len(personalized_message)
726
  personalized_display = f"{personalized_message}\n------\nКоличество знаков: {personalized_length}"
 
727
  if personalized_messages:
728
  personalized_messages += '\n\n' + personalized_display
729
  else: