retrieval.py
1 """Retrieval pipeline configuration.""" 2 3 4 from pydantic import Field 5 from pydantic_settings import BaseSettings 6 7 from src.constants import DEFAULT_RETRIEVAL_K # Shared across retrievers, vector_stores, and config 8 from src.retrievers.types import RetrieverType 9 10 11 class RetrievalConfig(BaseSettings): 12 """Retrieval pipeline configuration.""" 13 14 searcher_strategy: RetrieverType = Field( 15 default=RetrieverType.SIMILARITY, 16 description="Retrieval strategy type", 17 ) 18 k: int = Field( 19 default=DEFAULT_RETRIEVAL_K, 20 description="Number of results to retrieve", 21 gt=0, 22 ) 23 searcher_config: dict | None = Field( 24 default=None, 25 description="Additional searcher-specific configuration", 26 ) 27