Spaces:
Sleeping
Sleeping
Revert "update"
Browse filesThis reverts commit 575d4e0d0c422d6e3cb72aeaf539475e908b5b2e.
Revert "update"
This reverts commit a49da617df18774989664aa8bc79ccbc664a3c2f.
business_transaction_map/components/faiss_vector_database.py
CHANGED
|
@@ -187,46 +187,23 @@ class FaissVectorDatabase:
|
|
| 187 |
'TypeDocs': К кому разделу относится карта проводок (1С или SAP)
|
| 188 |
}
|
| 189 |
"""
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
raise ValueError("Вектор запроса должен иметь размерность [1, d].")
|
| 193 |
-
|
| 194 |
-
# Приведение вектора запроса к нужной размерности, если требуется
|
| 195 |
-
query_dim = emb_query.shape[1]
|
| 196 |
-
index_dim = self.index.d
|
| 197 |
-
if query_dim != index_dim:
|
| 198 |
-
if query_dim < index_dim:
|
| 199 |
-
# Padding до нужной размерности
|
| 200 |
-
padded_query = torch.zeros((1, index_dim), dtype=torch.float32)
|
| 201 |
-
padded_query[:, :query_dim] = emb_query
|
| 202 |
-
emb_query = padded_query
|
| 203 |
-
else:
|
| 204 |
-
raise ValueError(
|
| 205 |
-
f"Размерность вектора запроса ({query_dim}) превышает размерность индекса ({index_dim})."
|
| 206 |
-
)
|
| 207 |
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
except Exception as e:
|
| 214 |
-
raise RuntimeError(f"Ошибка при выполнении поиска: {e}")
|
| 215 |
-
|
| 216 |
answers = {}
|
| 217 |
for i, ind in enumerate(indexes[0]):
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
answers[i] =
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
"text_answer": self.df.iloc[ind][COLUMN_TABLE_NAME],
|
| 227 |
-
COLUMN_LABELS_STR: self.df.iloc[ind][COLUMN_LABELS_STR],
|
| 228 |
-
COLUMN_NAMES: self.df.iloc[ind][COLUMN_NAMES],
|
| 229 |
-
COLUMN_TYPE_DOC_MAP: self.df.iloc[ind][COLUMN_TYPE_DOC_MAP],
|
| 230 |
-
}
|
| 231 |
|
| 232 |
return answers
|
|
|
|
| 187 |
'TypeDocs': К кому разделу относится карта проводок (1С или SAP)
|
| 188 |
}
|
| 189 |
"""
|
| 190 |
+
if len(emb_query.shape) != 2:
|
| 191 |
+
assert print('Не правильный размер вектора!')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 192 |
|
| 193 |
+
print("Index dimension:", self.index.d) # Размерность индекса
|
| 194 |
+
print("Query dimension:", emb_query.shape[1]) # Размерность вектора запроса
|
| 195 |
+
|
| 196 |
+
|
| 197 |
+
distances, indexes = self.index.search(emb_query, k_neighbors)
|
|
|
|
|
|
|
|
|
|
| 198 |
answers = {}
|
| 199 |
for i, ind in enumerate(indexes[0]):
|
| 200 |
+
answers[i] = {}
|
| 201 |
+
answers[i][f'distance'] = distances[0][i]
|
| 202 |
+
answers[i][f'index_answer'] = ind
|
| 203 |
+
answers[i][f'doc_name'] = self.df.iloc[ind][COLUMN_DOC_NAME]
|
| 204 |
+
answers[i][f'text_answer'] = self.df.iloc[ind][COLUMN_TABLE_NAME]
|
| 205 |
+
answers[i][COLUMN_LABELS_STR] = self.df.iloc[ind][COLUMN_LABELS_STR]
|
| 206 |
+
answers[i][COLUMN_NAMES] = self.df.iloc[ind][COLUMN_NAMES]
|
| 207 |
+
answers[i][COLUMN_TYPE_DOC_MAP] = self.df.iloc[ind][COLUMN_TYPE_DOC_MAP]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 208 |
|
| 209 |
return answers
|