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
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-08 06:06 +0000
1from __future__ import annotations
3from dataclasses import dataclass
4from enum import Enum
7class HybridStage(Enum):
8 VECTOR = "vector"
9 KEYWORD = "keyword"
10 METADATA = "metadata"
11 COMBINE = "combine"
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
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
28@dataclass
29class HybridProcessingConfig:
30 enable_booster: bool = False
31 enable_normalizer: bool = False
32 enable_deduplicator: bool = False
33 enable_reranker: bool = False