Spaces:
Sleeping
Sleeping
File size: 601 Bytes
4c0ae33 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | from sentence_transformers import CrossEncoder
class Reranker:
def __init__(self):
self.model = CrossEncoder(
"cross-encoder/ms-marco-MiniLM-L-6-v2"
)
def rerank(self, query, retrieved_chunks, top_k=5):
if not retrieved_chunks:
return []
pairs = [[query, text] for text, _ in retrieved_chunks]
scores = self.model.predict(pairs)
ranked = sorted(
zip(retrieved_chunks, scores),
key=lambda x: x[1],
reverse=True
)
return [text for ((text, _), _) in ranked[:top_k]]
|