Spaces:
Sleeping
Sleeping
fruitpicker01
commited on
Commit
•
b1972ae
1
Parent(s):
ca644fa
Update app.py
Browse files
app.py
CHANGED
@@ -153,8 +153,15 @@ def change_tab(id):
|
|
153 |
return gr.Tabs(selected=id)
|
154 |
|
155 |
# Вспомогательная функция для добавления префиксов и суффиксов
|
156 |
-
def add_prefix_suffix(prompt, prefix, suffix):
|
157 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
|
159 |
# Функция для обрезки сообщения до последнего знака препинания
|
160 |
def clean_message(message):
|
@@ -182,7 +189,7 @@ def generate_message_mistral_generate(prompt, max_retries=5):
|
|
182 |
model="mistral-large-latest",
|
183 |
temperature=1.0,
|
184 |
min_tokens=81,
|
185 |
-
max_tokens=
|
186 |
messages=[
|
187 |
{
|
188 |
"role": "user",
|
@@ -592,8 +599,10 @@ def generate_standard_prompt(description, advantages, key_message, *selected_val
|
|
592 |
|
593 |
|
594 |
# Функция для создания задания для редактора с добавлением prefix и suffix
|
595 |
-
def generate_personalization_prompt(key_message, *selected_values, prefix, suffix):
|
596 |
-
prompt = "
|
|
|
|
|
597 |
gender, generation, psychotype = selected_values[0], selected_values[1], selected_values[2]
|
598 |
combined_instruction = ""
|
599 |
additional_instructions = ""
|
@@ -634,12 +643,10 @@ def generate_personalization_prompt(key_message, *selected_values, prefix, suffi
|
|
634 |
if additional_instructions:
|
635 |
prompt += additional_instructions # Добавляем остальные инструкции
|
636 |
|
637 |
-
|
638 |
-
prompt
|
639 |
-
|
640 |
-
|
641 |
-
# Добавляем ключевое сообщение
|
642 |
-
prompt += f"\nУбедись, что в готовом тексте есть следующая ключевая информация: {key_message.strip()}"
|
643 |
|
644 |
return prompt.strip()
|
645 |
|
@@ -659,7 +666,7 @@ def clean_prompt_for_display(prompt, prefixes, suffixes):
|
|
659 |
return cleaned_prompt.strip()
|
660 |
|
661 |
# Функция для постепенной генерации всех сообщений через yield
|
662 |
-
def generate_all_messages(desc, benefits, key_message, gender, generation, psychotype, business_stage, industry, opf):
|
663 |
standard_prompt = generate_standard_prompt(desc, benefits, key_message)
|
664 |
approach_mapping = {
|
665 |
"Указание на пользу": (
|
@@ -729,7 +736,7 @@ def generate_all_messages(desc, benefits, key_message, gender, generation, psych
|
|
729 |
if flag == 1:
|
730 |
yield selected_approaches_text_content, standard_prompt, display_personalization_prompt, None, None
|
731 |
flag += 1
|
732 |
-
prompt = add_prefix_suffix(standard_prompt, current_prefix, current_suffix)
|
733 |
non_personalized_message = generate_message_mistral_with_retry(prompt, approach_name, desc, key_message)
|
734 |
non_personalized_length = len(non_personalized_message)
|
735 |
non_personalized_display = f"{non_personalized_message}\n------\nКоличество знаков: {non_personalized_length}"
|
|
|
153 |
return gr.Tabs(selected=id)
|
154 |
|
155 |
# Вспомогательная функция для добавления префиксов и суффиксов
|
156 |
+
def add_prefix_suffix(prompt, prefix, suffix, product_name):
|
157 |
+
new_prompt = f"{prefix}\n"
|
158 |
+
# Добавляем инструкцию после prefix
|
159 |
+
new_prompt += f"Не изменяй название продукта: {product_name}.\n"
|
160 |
+
new_prompt += f"{prompt}\n"
|
161 |
+
# Добавляем инструкцию перед suffix
|
162 |
+
new_prompt += f"Убедись, что в готовом тексте без изменений, синонимов и перестановок слов используется наименование продукта: {product_name}.\n"
|
163 |
+
new_prompt += f"{suffix}"
|
164 |
+
return new_prompt
|
165 |
|
166 |
# Функция для обрезки сообщения до последнего знака препинания
|
167 |
def clean_message(message):
|
|
|
189 |
model="mistral-large-latest",
|
190 |
temperature=1.0,
|
191 |
min_tokens=81,
|
192 |
+
max_tokens=108,
|
193 |
messages=[
|
194 |
{
|
195 |
"role": "user",
|
|
|
599 |
|
600 |
|
601 |
# Функция для создания задания для редактора с добавлением prefix и suffix
|
602 |
+
def generate_personalization_prompt(key_message, *selected_values, prefix, suffix, product_name):
|
603 |
+
prompt = f"{prefix}\n"
|
604 |
+
prompt += f"Не изменяй название продукта: {product_name}.\n"
|
605 |
+
prompt += "Адаптируй, не превышая длину сообщения в 250 знаков с пробелами (но и не менее 190 знаков с пробелами), текст с учетом следующих особенностей:\n"
|
606 |
gender, generation, psychotype = selected_values[0], selected_values[1], selected_values[2]
|
607 |
combined_instruction = ""
|
608 |
additional_instructions = ""
|
|
|
643 |
if additional_instructions:
|
644 |
prompt += additional_instructions # Добавляем остальные инструкции
|
645 |
|
646 |
+
prompt += f"{suffix}"
|
647 |
+
prompt += f"Убедись, что в готовом тексте без изменений, синонимов и перестановок слов используется наименование продукта: {product_name}.\n"
|
648 |
+
if key_message.strip():
|
649 |
+
prompt += f"\nУбедись, что в готовом тексте есть следующая ключевая информация: {key_message.strip()}"
|
|
|
|
|
650 |
|
651 |
return prompt.strip()
|
652 |
|
|
|
666 |
return cleaned_prompt.strip()
|
667 |
|
668 |
# Функция для постепенной генерации всех сообщений через yield
|
669 |
+
def generate_all_messages(desc, benefits, key_message, gender, generation, psychotype, business_stage, industry, opf, product_name):
|
670 |
standard_prompt = generate_standard_prompt(desc, benefits, key_message)
|
671 |
approach_mapping = {
|
672 |
"Указание на пользу": (
|
|
|
736 |
if flag == 1:
|
737 |
yield selected_approaches_text_content, standard_prompt, display_personalization_prompt, None, None
|
738 |
flag += 1
|
739 |
+
prompt = add_prefix_suffix(standard_prompt, current_prefix, current_suffix, product_name)
|
740 |
non_personalized_message = generate_message_mistral_with_retry(prompt, approach_name, desc, key_message)
|
741 |
non_personalized_length = len(non_personalized_message)
|
742 |
non_personalized_display = f"{non_personalized_message}\n------\nКоличество знаков: {non_personalized_length}"
|