from sentence_transformers import CrossEncoder pairs = [ ( "How do I reset a user password?", "Use the account settings page to send a password reset link.", ), ( "How do I reset a user password?", "Rotate the signing key before deploying a new release.", ), ( "Which document explains database backups?", "Create a snapshot, copy it to archive storage, and record the restore point.", ), ] model = CrossEncoder("cross-encoder/ms-marco-MiniLM-L6-v2", device="cpu") scores = model.predict(pairs, show_progress_bar=False) ranked_pairs = sorted( zip(scores, pairs), key=lambda item: float(item[0]), reverse=True, ) for rank, (score, (query, passage)) in enumerate(ranked_pairs, start=1): print(f"{rank}. score={float(score):.2f}") print(f" query: {query}") print(f" passage: {passage}") if float(scores[0]) <= float(scores[1]): raise SystemExit("password reset pair did not score above unrelated release text") if float(scores[2]) <= float(scores[1]): raise SystemExit("backup pair did not score above unrelated release text") print("check: relevant pairs scored above the unrelated pair")