Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 12 additions & 13 deletions backend/app/rag/reranker.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,19 +73,18 @@ def rerank(
# Get relevance scores
scores = model.predict(pairs)

# Pair scores with documents and sort in descending order
scored = list(zip(scores, documents))
scored.sort(key=lambda x: x[0], reverse=True)

# Return top_k documents
reranked = [doc for _, doc in scored[:top_k]]

# Attach rerank_score to each returned document
for (score, doc) in scored:
if doc in reranked:
doc["rerank_score"] = float(score)

return reranked
# Create shallow copies of the documents and attach scores to prevent mutating original inputs
scored_docs = []
for score, doc in zip(scores, documents):
doc_copy = doc.copy() # Create a copy to isolate changes
doc_copy["rerank_score"] = float(score)
scored_docs.append(doc_copy)

# Sort the copied documents in descending order of relevance
scored_docs.sort(key=lambda x: x["rerank_score"], reverse=True)

# Return only the top_k requested documents
return scored_docs[:top_k]


# Singleton instance for global reuse
Expand Down
Loading