/ src / config / retrieval.py
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