Source code for fastrag.retrieval.fusion.base

"""Backend-independent fusion of ranked document lists."""

from abc import ABC, abstractmethod
from collections.abc import Sequence

from fastrag.models import Document


[docs] class RankFusion(ABC): """Combine rankings without assuming comparable backend scores."""
[docs] @abstractmethod def fuse(self, rankings: Sequence[Sequence[Document]], *, k: int) -> list[Document]: """Return at most ``k`` unique documents, best first.""" ...