Madras1 commited on
Commit
367c868
·
verified ·
1 Parent(s): 7d9aea8

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -3
app.py CHANGED
@@ -759,11 +759,19 @@ async def search_api(query: str = Form(...), job_id: str = Form(...)):
759
 
760
  top_k_retrieval = min(50, faiss_index.ntotal) if faiss_index else 50
761
 
 
 
 
762
  if faiss_index:
763
  # FAISS search - retorna (distances, indices)
764
- scores, top_indices = faiss_index.search(query_normalized.astype('float32'), top_k_retrieval)
765
- scores = scores[0] # Flatten
766
  top_indices = top_indices[0]
 
 
 
 
 
767
  logging.info(f"FAISS search: top score = {scores[0]:.3f}")
768
  else:
769
  # Fallback para busca bruta se não tiver FAISS
@@ -771,6 +779,9 @@ async def search_api(query: str = Form(...), job_id: str = Form(...)):
771
  similarities = cosine_similarity(query_embedding, corpus_embeddings)[0]
772
  top_indices = np.argsort(similarities)[-top_k_retrieval:][::-1]
773
  scores = similarities[top_indices]
 
 
 
774
 
775
  candidate_docs = []
776
  candidate_indices = []
@@ -807,7 +818,7 @@ async def search_api(query: str = Form(...), job_id: str = Form(...)):
807
  final_results.append({
808
  "index": idx,
809
  "score": float(score),
810
- "cosine_score": float(similarities[idx]),
811
  "citation_id": rank + 1
812
  })
813
 
 
759
 
760
  top_k_retrieval = min(50, faiss_index.ntotal) if faiss_index else 50
761
 
762
+ # Criar mapeamento de scores por índice
763
+ retrieval_scores = {}
764
+
765
  if faiss_index:
766
  # FAISS search - retorna (distances, indices)
767
+ faiss_scores, top_indices = faiss_index.search(query_normalized.astype('float32'), top_k_retrieval)
768
+ faiss_scores = faiss_scores[0] # Flatten
769
  top_indices = top_indices[0]
770
+ scores = faiss_scores
771
+ # Mapear índices para scores
772
+ for i, idx in enumerate(top_indices):
773
+ if idx >= 0:
774
+ retrieval_scores[int(idx)] = float(faiss_scores[i])
775
  logging.info(f"FAISS search: top score = {scores[0]:.3f}")
776
  else:
777
  # Fallback para busca bruta se não tiver FAISS
 
779
  similarities = cosine_similarity(query_embedding, corpus_embeddings)[0]
780
  top_indices = np.argsort(similarities)[-top_k_retrieval:][::-1]
781
  scores = similarities[top_indices]
782
+ # Mapear índices para scores
783
+ for i, idx in enumerate(top_indices):
784
+ retrieval_scores[int(idx)] = float(similarities[idx])
785
 
786
  candidate_docs = []
787
  candidate_indices = []
 
818
  final_results.append({
819
  "index": idx,
820
  "score": float(score),
821
+ "cosine_score": retrieval_scores.get(idx, 0.0),
822
  "citation_id": rank + 1
823
  })
824