Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
|
|
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 |
-
{
|
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 |
-
{
|
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}».
|