reranker.py•833 B
"""Reranker strategies for result reranking."""
from abc import ABC, abstractmethod
from typing import List
from ..storage.schema import SearchResult
class Reranker(ABC):
"""Base reranker interface."""
@abstractmethod
async def rerank(
self,
query: str,
results: List[SearchResult]
) -> List[SearchResult]:
"""Rerank search results."""
pass
class NoOpReranker(Reranker):
"""No-op reranker - returns results unchanged."""
async def rerank(
self,
query: str,
results: List[SearchResult]
) -> List[SearchResult]:
"""Pass through results without reranking."""
return results
# Future: CrossEncoderReranker
# class CrossEncoderReranker(Reranker):
# """Rerank using sentence transformers cross-encoder."""
# pass