Spaces:
Sleeping
Sleeping
fruitpicker01
commited on
Commit
•
5a5790e
1
Parent(s):
8a62f8e
Update app.py
Browse files
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 |
-
|
661 |
-
|
662 |
-
|
663 |
-
"
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
"
|
668 |
-
|
669 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
670 |
non_personalized_messages = ''
|
671 |
personalized_messages = ''
|
672 |
flag = 1
|
673 |
-
for
|
674 |
-
|
|
|
|
|
|
|
675 |
personalization_prompt = generate_personalization_prompt(
|
676 |
key_message, gender, generation, psychotype, business_stage, industry, opf,
|
677 |
-
prefix=
|
678 |
)
|
679 |
-
display_personalization_prompt = clean_prompt_for_display(personalization_prompt,
|
680 |
if flag == 1:
|
681 |
yield standard_prompt, display_personalization_prompt, None, None
|
682 |
flag += 1
|
683 |
-
prompt = add_prefix_suffix(standard_prompt,
|
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:
|