Согласование радиуса: summary = max_distance × средний психотип-множитель

- search_engine: max_distance_km передаётся в analyzer (case_data).
- rules_analysis: search_radius = max_distance × _psychotype_radius_multiplier
  (среднее по полосам 0-500/0.5-1.5/1.5-2.5/2.5+). Убран двойной учёт
  age/season: score_zone.distance_multiplier их уже содержит, а max_distance
  их тоже учёл — раньше radius = multiplier×2.0 (хардкод) давал 1.6 км при
  радиусе 2.4 км.
- UI: подсказка у «×0.8» — коэффициент скоринга, не радиуса.
- Тест: согласованность summary↔формула.
This commit is contained in:
2026-09-09 23:25:06 +03:00
parent 1fe3b37d1a
commit 1513bad538
4 changed files with 41 additions and 4 deletions
+1
View File
@@ -269,6 +269,7 @@ async def build_search_model(
case_data['psychotype_modifiers'] = psychotype_modifiers
max_distance_km = calculate_max_distance(case_data)
case_data['max_distance_km'] = max_distance_km
analysis = await analyzer(case_data)
scorer = WeightedScorer()