(
query: str,
bm25: BM25Retriever,
dense: DenseRetriever,
candidate_k: int = 50,
)
| 19 | |
| 20 | |
| 21 | def hybrid_candidates( |
| 22 | query: str, |
| 23 | bm25: BM25Retriever, |
| 24 | dense: DenseRetriever, |
| 25 | candidate_k: int = 50, |
| 26 | ) -> list[tuple[str, float]]: |
| 27 | bm25_ids = [doc_id for doc_id, _ in bm25.search(query, k=candidate_k)] |
| 28 | dense_ids = [doc_id for doc_id, _ in dense.search(query, k=candidate_k)] |
| 29 | return reciprocal_rank_fusion([bm25_ids, dense_ids])[:candidate_k] |
no test coverage detected