MrSimple07 commited on
Commit
52b85db
·
1 Parent(s): ad5ae30

Extracts weld type from query

Browse files
Files changed (1) hide show
  1. utils.py +19 -9
utils.py CHANGED
@@ -201,25 +201,33 @@ def answer_question(question, query_engine, reranker, current_model, chunks_df=N
201
 
202
  try:
203
  start_time = time.time()
204
- retrieved_nodes = query_engine.retriever.retrieve(question)
205
- log_message(f"user query: {question}")
206
-
207
 
 
 
 
 
 
 
 
 
 
208
  log_message(f"RETRIEVED: {len(retrieved_nodes)} nodes")
209
 
210
  unique_retrieved = deduplicate_nodes(retrieved_nodes)
211
-
212
- # DEBUG: Log what was retrieved
213
  log_message(f"RETRIEVED: unique {len(unique_retrieved)} nodes")
214
- for i, node in enumerate(unique_retrieved): # All debug
 
215
  table_num = node.metadata.get('table_number', 'N/A')
216
  table_title = node.metadata.get('table_title', 'N/A')
217
  doc_id = node.metadata.get('document_id', 'N/A')
218
  log_message(f" [{i+1}] {doc_id} - Table {table_num}: {table_title[:50]}")
219
- log_message(f"UNIQUE NODES: {len(unique_retrieved)} nodes")
220
 
221
- # Simple reranking
222
- reranked_nodes = rerank_nodes(question, unique_retrieved, reranker, top_k=20)
 
 
 
 
223
 
224
  # Direct query without formatting
225
  response = query_engine.query(question)
@@ -261,5 +269,7 @@ def answer_question(question, query_engine, reranker, current_model, chunks_df=N
261
 
262
  except Exception as e:
263
  log_message(f"Ошибка: {str(e)}")
 
 
264
  error_msg = f"<div style='background-color: #e53e3e; color: white; padding: 20px; border-radius: 10px;'>Ошибка: {str(e)}</div>"
265
  return error_msg, "", ""
 
201
 
202
  try:
203
  start_time = time.time()
 
 
 
204
 
205
+ # Use enhanced retrieval if available
206
+ if hasattr(query_engine, 'retrieve'):
207
+ # Use the enhanced retrieval that's aware of weld types
208
+ retrieved_nodes = query_engine.retrieve(question)
209
+ else:
210
+ # Fallback to standard retrieval
211
+ retrieved_nodes = query_engine.retriever.retrieve(question)
212
+
213
+ log_message(f"user query: {question}")
214
  log_message(f"RETRIEVED: {len(retrieved_nodes)} nodes")
215
 
216
  unique_retrieved = deduplicate_nodes(retrieved_nodes)
 
 
217
  log_message(f"RETRIEVED: unique {len(unique_retrieved)} nodes")
218
+
219
+ for i, node in enumerate(unique_retrieved[:15]): # Log first 15
220
  table_num = node.metadata.get('table_number', 'N/A')
221
  table_title = node.metadata.get('table_title', 'N/A')
222
  doc_id = node.metadata.get('document_id', 'N/A')
223
  log_message(f" [{i+1}] {doc_id} - Table {table_num}: {table_title[:50]}")
 
224
 
225
+ # Rerank only if we have nodes
226
+ if unique_retrieved:
227
+ reranked_nodes = rerank_nodes(question, unique_retrieved, reranker, top_k=20)
228
+ else:
229
+ reranked_nodes = []
230
+ log_message("WARNING: No nodes to rerank!")
231
 
232
  # Direct query without formatting
233
  response = query_engine.query(question)
 
269
 
270
  except Exception as e:
271
  log_message(f"Ошибка: {str(e)}")
272
+ import traceback
273
+ log_message(traceback.format_exc())
274
  error_msg = f"<div style='background-color: #e53e3e; color: white; padding: 20px; border-radius: 10px;'>Ошибка: {str(e)}</div>"
275
  return error_msg, "", ""