"""Retrieval — dense (potion broad, Step 05) + lexical (BM25, Step 07) + (later) granite precision. The static Model2Vec embedder carries the 100K-scale recall pass online; BM25 adds the lexical signal for the composite narrow, so the expensive transformer only ever sees the narrowed pool. """ from .bm25 import bm25_scores from .granite import granite_precision_score from .potion import potion_broad_retrieval from .reranker import cross_encoder_rerank __all__ = ["bm25_scores", "cross_encoder_rerank", "granite_precision_score", "potion_broad_retrieval"]