fruitpicker01 commited on
Commit
9ca9eeb
·
verified ·
1 Parent(s): 38745d7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -13
app.py CHANGED
@@ -124,14 +124,21 @@ def get_approaches(gender, generation, psychotype, approaches_df):
124
 
125
  def get_instructions_for_param(param_value, df, col):
126
  if not param_value or param_value == "Не выбрано":
127
- return None
 
128
  row = df[df[col] == param_value]
129
  if row.empty:
130
- return None
131
- instr1 = row.iloc[0].get("Инструкция 1", "")
132
- if not instr1.strip():
133
- return None
134
- return instr1
 
 
 
 
 
 
135
 
136
  def format_instruction_string(instr):
137
  terms = [t.strip() for t in instr.split(',') if t.strip()]
@@ -171,12 +178,18 @@ def generate_display_prompts(description, product_name, benefits, key_message, c
171
  if not chosen_params_instructions:
172
  return ("Для формирования промпта выберите хотя бы один личный персональный параметр для определения подхода",
173
  "Для формирования промпта выберите хотя бы один личный персональный параметр для определения подхода")
174
- lines = []
175
- for i, instr_line in enumerate(chosen_params_instructions, start=1):
176
- formatted_line = format_instruction_string(instr_line)
177
- lines.append(f"{i}. {formatted_line}.")
178
- mandatory_terms = "\n".join(lines)
 
179
 
 
 
 
 
 
180
  extra_line = ""
181
  if generation == "Z":
182
  extra_line = "Обратись в SMS на ты. "
@@ -188,7 +201,7 @@ def generate_display_prompts(description, product_name, benefits, key_message, c
188
  Преимущества:
189
  «{benefits}».
190
  ОБЯЗАТЕЛЬНО используй в SMS один или несколько терминов, касающиеся клиента, которому направляется SMS, из КАЖДОЙ группы:
191
- {mandatory_terms}
192
  Убедись, что написал не меньше трех и не больше четырех предложений суммарной длиной от 160 до 250 знаков с учетом пробелов.
193
  {approach_suffix}.
194
  Убедись, что УМЕСТНО использовал КАЖДЫЙ необходимый термин.
@@ -202,7 +215,7 @@ def generate_display_prompts(description, product_name, benefits, key_message, c
202
  Преимущества:
203
  «{benefits}».
204
  ОБЯЗАТЕЛЬНО включи в SMS:
205
- {mandatory_terms}
206
  Убедись, что написал не меньше трех и не больше четырех предложений суммарной длиной от 160 до 250 знаков с учетом пробелов.
207
  {approach_suffix}.
208
  Убедись, что в SMS без изменений, синонимов и перестановок слов используется наименование продукта: «{product_name}».
 
124
 
125
  def get_instructions_for_param(param_value, df, col):
126
  if not param_value or param_value == "Не выбрано":
127
+ return None, None
128
+
129
  row = df[df[col] == param_value]
130
  if row.empty:
131
+ return None, None
132
+
133
+ str_instr1 = row.iloc[0].get("Инструкция 1", "")
134
+ str_instr2 = row.iloc[0].get("Инструкция 2", "")
135
+
136
+ if not str_instr1.strip():
137
+ str_instr1 = None
138
+ if not str_instr2.strip():
139
+ str_instr2 = None
140
+
141
+ return str_instr1, str_instr2
142
 
143
  def format_instruction_string(instr):
144
  terms = [t.strip() for t in instr.split(',') if t.strip()]
 
178
  if not chosen_params_instructions:
179
  return ("Для формирования промпта выберите хотя бы один личный персональный параметр для определения подхода",
180
  "Для формирования промпта выберите хотя бы один личный персональный параметр для определения подхода")
181
+
182
+ lines_1 = []
183
+ for i, instr_line in enumerate(instructions_1_list, start=1):
184
+ # какой-то формат
185
+ lines_1.append(f"{i}. {format_instruction_string(instr_line)}.")
186
+ mandatory_terms_1 = "\n".join(lines_1)
187
 
188
+ lines_2 = []
189
+ for j, instr_line in enumerate(instructions_2_list, start=1):
190
+ lines_2.append(f"{j}. {format_instruction_string(instr_line)}.")
191
+ mandatory_terms_2 = "\n".join(lines_2)
192
+
193
  extra_line = ""
194
  if generation == "Z":
195
  extra_line = "Обратись в SMS на ты. "
 
201
  Преимущества:
202
  «{benefits}».
203
  ОБЯЗАТЕЛЬНО используй в SMS один или несколько терминов, касающиеся клиента, которому направляется SMS, из КАЖДОЙ группы:
204
+ {mandatory_terms_1}
205
  Убедись, что написал не меньше трех и не больше четырех предложений суммарной длиной от 160 до 250 знаков с учетом пробелов.
206
  {approach_suffix}.
207
  Убедись, что УМЕСТНО использовал КАЖДЫЙ необходимый термин.
 
215
  Преимущества:
216
  «{benefits}».
217
  ОБЯЗАТЕЛЬНО включи в SMS:
218
+ {mandatory_terms_2}
219
  Убедись, что написал не меньше трех и не больше четырех предложений суммарной длиной от 160 до 250 знаков с учетом пробелов.
220
  {approach_suffix}.
221
  Убедись, что в SMS без изменений, синонимов и перестановок слов используется наименование продукта: «{product_name}».