fruitpicker01 commited on
Commit
78eacd5
·
verified ·
1 Parent(s): 116494f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -4
app.py CHANGED
@@ -697,6 +697,7 @@ def load_previous_user_request_from_github():
697
 
698
  def get_reference_message(current_description, gender, generation, psychotype, business_stage, industry, legal_form):
699
  import io
 
700
  repo = "fruitpicker01/Storage_dev"
701
  file_path = "messages.csv"
702
  url = f"https://api.github.com/repos/{repo}/contents/{file_path}"
@@ -746,7 +747,7 @@ def get_reference_message(current_description, gender, generation, psychotype, b
746
  print("Сообщения с заданными параметрами не найдены.")
747
  return None
748
 
749
- # Проверяем, что колонка 'Описание предложения' существует
750
  if 'Описание предложения' not in filtered_df.columns:
751
  print("Описание предложения отсутствует в данных.")
752
  return None
@@ -763,14 +764,37 @@ def get_reference_message(current_description, gender, generation, psychotype, b
763
  tfidf_matrix = vectorizer.fit_transform(descriptions)
764
  cosine_similarities = cosine_similarity(tfidf_matrix[0:1], tfidf_matrix[1:]).flatten()
765
 
766
- # Находим индекс сообщения с наибольшим сходством
767
- most_similar_idx = cosine_similarities.argmax()
768
- similar_row = filtered_df.iloc[most_similar_idx]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
769
 
770
  if pd.notnull(similar_row.get("Откорректированное сообщение", None)) and similar_row["Откорректированное сообщение"].strip():
771
  reference_message = similar_row["Откорректированное сообщение"]
772
  else:
773
  reference_message = similar_row.get("Персонализированное сообщение", "")
 
774
  reference_message = re.sub(r'\n-{6,}\nКоличество знаков: \d+', '', reference_message).strip()
775
  return reference_message
776
 
 
697
 
698
  def get_reference_message(current_description, gender, generation, psychotype, business_stage, industry, legal_form):
699
  import io
700
+ import numpy as np # Убедитесь, что NumPy импортирован
701
  repo = "fruitpicker01/Storage_dev"
702
  file_path = "messages.csv"
703
  url = f"https://api.github.com/repos/{repo}/contents/{file_path}"
 
747
  print("Сообщения с заданными параметрами не найдены.")
748
  return None
749
 
750
+ # Проверяем наличие столбца 'Описание предложения'
751
  if 'Описание предложения' not in filtered_df.columns:
752
  print("Описание предложения отсутствует в данных.")
753
  return None
 
764
  tfidf_matrix = vectorizer.fit_transform(descriptions)
765
  cosine_similarities = cosine_similarity(tfidf_matrix[0:1], tfidf_matrix[1:]).flatten()
766
 
767
+ # Находим максимальное косинусное сходство
768
+ max_similarity = cosine_similarities.max()
769
+
770
+ # Находим индексы, где косинусное сходство равно максимальному
771
+ max_similarity_indices = np.where(cosine_similarities == max_similarity)[0]
772
+
773
+ # Получаем строки с максимальным сходством
774
+ similar_rows = filtered_df.iloc[max_similarity_indices]
775
+
776
+ # Проверяем наличие столбца 'Timestamp'
777
+ if 'Timestamp' not in similar_rows.columns:
778
+ print("Столбец 'Timestamp' отсутствует в данных.")
779
+ # Если нет 'Timestamp', выбираем первую строку
780
+ similar_row = similar_rows.iloc[0]
781
+ else:
782
+ # Создаем копию DataFrame, чтобы избежать предупреждений
783
+ similar_rows = similar_rows.copy()
784
+ # Преобразуем 'Timestamp' в числовой формат (предполагая, что это UNIX-время)
785
+ similar_rows['Timestamp'] = pd.to_numeric(similar_rows['Timestamp'], errors='coerce')
786
+
787
+ # Сортируем строки по 'Timestamp' в порядке убывания
788
+ similar_rows = similar_rows.sort_values(by='Timestamp', ascending=False)
789
+
790
+ # Выбираем первую строку (с самым новым 'Timestamp')
791
+ similar_row = similar_rows.iloc[0]
792
 
793
  if pd.notnull(similar_row.get("Откорректированное сообщение", None)) and similar_row["Откорректированное сообщение"].strip():
794
  reference_message = similar_row["Откорректированное сообщение"]
795
  else:
796
  reference_message = similar_row.get("Персонализированное сообщение", "")
797
+
798
  reference_message = re.sub(r'\n-{6,}\nКоличество знаков: \d+', '', reference_message).strip()
799
  return reference_message
800