muryshev commited on
Commit
bfc27c5
·
1 Parent(s): 575d4e0

Revert "update"

Browse files

This 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
- if len(emb_query.shape) != 2 or emb_query.shape[0] != 1:
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
- emb_query_np = emb_query.numpy().astype("float32")
209
-
210
- # Поиск в индексе
211
- try:
212
- distances, indexes = self.index.search(emb_query_np, k_neighbors)
213
- except Exception as e:
214
- raise RuntimeError(f"Ошибка при выполнении поиска: {e}")
215
-
216
  answers = {}
217
  for i, ind in enumerate(indexes[0]):
218
- if ind < 0 or ind >= len(self.df):
219
- answers[i] = {"error": "Индекс результата выходит за пределы таблицы"}
220
- continue
221
-
222
- answers[i] = {
223
- "distance": distances[0][i],
224
- "index_answer": ind,
225
- "doc_name": self.df.iloc[ind][COLUMN_DOC_NAME],
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