Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
768 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|