converting to pydantic-settings
This commit is contained in:
@@ -13,8 +13,6 @@ if TYPE_CHECKING:
|
||||
from python.ebook_search.search import SearchResult
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
RERANK_SCORE_WEIGHT = 0.7
|
||||
HYBRID_SCORE_WEIGHT = 0.3
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
@@ -41,7 +39,7 @@ def rerank_chunks(query: str, candidates: list[SearchResult], config: RerankConf
|
||||
(
|
||||
replace(
|
||||
result,
|
||||
score=final_rerank_score(result, scores[result.chunk_id].score, candidates),
|
||||
score=final_rerank_score(result, scores[result.chunk_id].score, candidates, config),
|
||||
rerank_score=scores[result.chunk_id].score,
|
||||
)
|
||||
for result in candidates
|
||||
@@ -110,9 +108,14 @@ def clamp_score(score: float) -> float:
|
||||
return min(max(score, 0.0), 1.0)
|
||||
|
||||
|
||||
def final_rerank_score(result: SearchResult, rerank_score: float, candidates: list[SearchResult]) -> float:
|
||||
def final_rerank_score(
|
||||
result: SearchResult,
|
||||
rerank_score: float,
|
||||
candidates: list[SearchResult],
|
||||
config: RerankConfig,
|
||||
) -> float:
|
||||
"""Combine rerank relevance with normalized hybrid retrieval evidence."""
|
||||
return (RERANK_SCORE_WEIGHT * rerank_score) + (HYBRID_SCORE_WEIGHT * normalized_hybrid_score(result, candidates))
|
||||
return (config.score_weight * rerank_score) + (config.hybrid_weight * normalized_hybrid_score(result, candidates))
|
||||
|
||||
|
||||
def normalized_hybrid_score(result: SearchResult, candidates: list[SearchResult]) -> float:
|
||||
|
||||
Reference in New Issue
Block a user