## 변경 ### fusion_service.py - SOFT_FILTER_MAX_BOOST = 0.05 (plan 영구 룰, RRF score 왜곡 방지) - SOFT_FILTER_DOMAIN_BOOST = 0.03, SOFT_FILTER_DOCTYPE_BOOST = 0.02 - apply_soft_filter_boost(results, soft_filters) → int - ai_domain 부분 문자열 매칭 (path 포함 e.g. "Industrial_Safety/Legislation") - document_type 토큰 매칭 (ai_domain + match_reason 헤이스택) - 상한선 0.05 강제 - boost 후 score 기준 재정렬 ### api/search.py - fusion 직후 호출 조건: - analyzer_cache_hit == True - analyzer_tier != "ignore" (confidence >= 0.5) - query_analysis.soft_filters 존재 - notes에 "soft_filter_boost applied=N" 기록 ## Phase 2.3 범위 - hard_filter SQL WHERE는 현재 평가셋에 명시 필터 쿼리 없어 효과 측정 불가 → Phase 2.4 v0.2 확장 후 - document_type의 file_format 직접 매칭은 의미론적 mismatch → 제외 - hard_filter는 Phase 2.4 이후 iteration Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
11 KiB
11 KiB