Coverage for src/qdrant_loader_mcp_server/search/hybrid/models.py: 100%

23 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-09-08 06:06 +0000

1from __future__ import annotations 

2 

3from dataclasses import dataclass 

4from enum import Enum 

5 

6 

7class HybridStage(Enum): 

8 VECTOR = "vector" 

9 KEYWORD = "keyword" 

10 METADATA = "metadata" 

11 COMBINE = "combine" 

12 

13 

14# Default constants (single source of truth for defaults) 

15DEFAULT_VECTOR_WEIGHT: float = 0.6 

16DEFAULT_KEYWORD_WEIGHT: float = 0.3 

17DEFAULT_METADATA_WEIGHT: float = 0.1 

18DEFAULT_MIN_SCORE: float = 0.3 

19 

20 

21@dataclass 

22class HybridWeights: 

23 vector_weight: float = DEFAULT_VECTOR_WEIGHT 

24 keyword_weight: float = DEFAULT_KEYWORD_WEIGHT 

25 metadata_weight: float = DEFAULT_METADATA_WEIGHT 

26 

27 

28@dataclass 

29class HybridProcessingConfig: 

30 enable_booster: bool = False 

31 enable_normalizer: bool = False 

32 enable_deduplicator: bool = False 

33 enable_reranker: bool = False