fruitpicker01 commited on
Commit
b1972ae
1 Parent(s): ca644fa

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -13
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
- return f"{prefix}\n{prompt}\n{suffix}"
 
 
 
 
 
 
 
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=109,
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 = "Адаптируй, не превышая длину сообщения в 250 знаков с пробелами (но и не менее 190 знаков с пробелами), текст с учетом следующих особенностей:\n"
 
 
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 = f"{prefix}\n{prompt}\n{suffix}"
639
- prompt += "Убедись, что в готовом тексте не изменено название предлагаемого продукта.\n"
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}"