| from sentence_transformers import CrossEncoder | |
| model = CrossEncoder("cross-encoder/ms-marco-MiniLM-L-6-v2") | |
| def rerank(query, documents, top_k=3): | |
| pairs = [(query, doc["text"]) for doc in documents] | |
| scores = model.predict(pairs) | |
| ranked = sorted( | |
| zip(documents, scores), | |
| key=lambda x: x[1], | |
| reverse=True | |
| ) | |
| return ranked[:top_k] |