Spaces:
Sleeping
Sleeping
| 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]] | |