fruitpicker01 commited on
Commit
5796c77
·
verified ·
1 Parent(s): 47b1ac4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -14
app.py CHANGED
@@ -279,11 +279,11 @@ def get_reference_message(gender, generation, psychotype, business_stage, indust
279
  print(f"Error accessing the file: {response.status_code}")
280
  return None
281
 
282
- # Normalize the DataFrame columns
283
  for col in ["Пол", "Поколение", "Психотип", "Стадия бизнеса", "Отрасль", "ОПФ"]:
284
  df[col] = df[col].astype(str).str.strip().str.lower()
285
 
286
- # Normalize the input parameters
287
  params = {
288
  "Пол": str(gender).strip().lower() if gender else None,
289
  "Поколение": str(generation).strip().lower() if generation else None,
@@ -293,22 +293,17 @@ def get_reference_message(gender, generation, psychotype, business_stage, indust
293
  "ОПФ": str(legal_form).strip().lower() if legal_form else None
294
  }
295
 
296
- # Debugging: Print DataFrame and parameters
297
- print("DataFrame columns:", df.columns)
298
- print("DataFrame head:\n", df.head())
299
- print("Personalization parameters:", params)
300
-
301
- # Build the filter conditions dynamically
302
  filter_conditions = []
303
  for col, value in params.items():
304
  if value and value.lower() != 'none':
305
  filter_conditions.append(df[col] == value)
306
 
307
  if not filter_conditions:
308
- print("No personalization parameters provided.")
309
  return None
310
 
311
- # Combine filter conditions
312
  filter_condition = filter_conditions[0]
313
  for condition in filter_conditions[1:]:
314
  filter_condition &= condition
@@ -316,21 +311,24 @@ def get_reference_message(gender, generation, psychotype, business_stage, indust
316
  filtered_df = df[filter_condition]
317
 
318
  if filtered_df.empty:
319
- print("No messages found with the given personalization parameters.")
320
  return None
321
 
322
- # Sort by Timestamp descending
323
  filtered_df = filtered_df.sort_values(by="Timestamp", ascending=False)
324
 
325
- # Get the latest message
326
  latest_row = filtered_df.iloc[0]
327
 
328
- # Choose the appropriate message
329
  if pd.notnull(latest_row.get("Откорректированное сообщение", None)) and latest_row["Откорректированное сообщение"].strip():
330
  reference_message = latest_row["Откорректированное сообщение"]
331
  else:
332
  reference_message = latest_row.get("Персонализированное сообщение", "")
333
 
 
 
 
334
  return reference_message
335
 
336
 
 
279
  print(f"Error accessing the file: {response.status_code}")
280
  return None
281
 
282
+ # Нормализуем данные для корректного сравнения
283
  for col in ["Пол", "Поколение", "Психотип", "Стадия бизнеса", "Отрасль", "ОПФ"]:
284
  df[col] = df[col].astype(str).str.strip().str.lower()
285
 
286
+ # Нормализуем входные параметры
287
  params = {
288
  "Пол": str(gender).strip().lower() if gender else None,
289
  "Поколение": str(generation).strip().lower() if generation else None,
 
293
  "ОПФ": str(legal_form).strip().lower() if legal_form else None
294
  }
295
 
296
+ # Формируем условия фильтрации
 
 
 
 
 
297
  filter_conditions = []
298
  for col, value in params.items():
299
  if value and value.lower() != 'none':
300
  filter_conditions.append(df[col] == value)
301
 
302
  if not filter_conditions:
303
+ print("Не заданы параметры персонализации.")
304
  return None
305
 
306
+ # Применяем фильтрацию
307
  filter_condition = filter_conditions[0]
308
  for condition in filter_conditions[1:]:
309
  filter_condition &= condition
 
311
  filtered_df = df[filter_condition]
312
 
313
  if filtered_df.empty:
314
+ print("Сообщения с заданными параметрами не найдены.")
315
  return None
316
 
317
+ # Сортируем по дате
318
  filtered_df = filtered_df.sort_values(by="Timestamp", ascending=False)
319
 
320
+ # Берем последнее сообщение
321
  latest_row = filtered_df.iloc[0]
322
 
323
+ # Получаем сообщение
324
  if pd.notnull(latest_row.get("Откорректированное сообщение", None)) and latest_row["Откорректированное сообщение"].strip():
325
  reference_message = latest_row["Откорректированное сообщение"]
326
  else:
327
  reference_message = latest_row.get("Персонализированное сообщение", "")
328
 
329
+ # Удаляем строку с количеством знаков
330
+ reference_message = re.sub(r'\n-{6,}\nКоличество знаков: \d+', '', reference_message).strip()
331
+
332
  return reference_message
333
 
334