From 5794cb74a975f213b4afd0a699590a3a7644de5d Mon Sep 17 00:00:00 2001 From: viktot14-ai Date: Wed, 9 Sep 2026 20:21:18 +0300 Subject: [PATCH] =?UTF-8?q?UI:=20=C2=AB=D0=BF=D0=B5=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=80=D1=8B=D1=82=D1=8C=C2=BB=20=E2=86=92=20=C2=AB=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B5=D1=80=D0=B8=D1=82=D1=8C=C2=BB=20(=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D0=BE=D0=BC=D0=B5=D0=BD=D0=B4=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20=D0=9C=D0=A7=D0=A1);=20=D0=B3=D0=B5=D0=BE=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=82=20=C2=AB=D0=BF=D1=83=D0=BD=D0=BA=D1=82?= =?UTF-8?q?,=20=D1=80=D0=B0=D0=B9=D0=BE=D0=BD,=20=D0=B0=D0=B4=D1=80=D0=B5?= =?UTF-8?q?=D1=81=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Рекомендации не предписывают перекрывать водоёмы/ж/д — оператор ПРОВЕРЯЕТ их (правки в rules_analysis, scoring_service ×2 копии, water.py + доки). 2. Геокодирование: район нужен (дубли улиц между районами) — подсказка формата «пункт, район, адрес» и текст ошибки. 198 passed. --- backend/routers/water.py | 6 +++--- backend/services/scoring_service.py | 2 +- frontend/src/components/CaseForm/Step4Environment.jsx | 4 ++-- services/rules_analysis.py | 2 +- services/scoring_service.py | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/backend/routers/water.py b/backend/routers/water.py index 5085b5f..a357e92 100644 --- a/backend/routers/water.py +++ b/backend/routers/water.py @@ -7,8 +7,8 @@ чтобы подсветить их на карте зон поиска (SearchMap): - водоёмы/болота: РАС water ×3.0, эпилепсия ×3.5, возраст 0–7 ×2.2–2.5, - критическое предупреждение «перекрыть ВСЕ водоёмы и ж/д»; -- ж/д пути: РАС railway ×2.5 — «немедленно перекрыть ВСЕ ж/д пути». + критическое предупреждение «проверить ВСЕ водоёмы и ж/д»; +- ж/д пути: РАС railway ×2.5 — «немедленно проверить ВСЕ ж/д пути». Данные: OpenStreetMap, лицензия ODbL — attribution обязателен на карте. Кэш дисковый; circuit breaker переиспользуем от geo_service, чтобы анализ @@ -59,7 +59,7 @@ out geom; """ _CLASS_WARNING = 'Водоём в зоне поиска — приоритетная проверка (профиль: {profiles})' -_RAIL_WARNING = 'Ж/д пути в зоне поиска — перекрыть/проверить немедленно (профиль: {profiles})' +_RAIL_WARNING = 'Ж/д пути в зоне поиска — проверить немедленно (профиль: {profiles})' class GeoFeature(BaseModel): diff --git a/backend/services/scoring_service.py b/backend/services/scoring_service.py index 4d550ed..25a09f1 100644 --- a/backend/services/scoring_service.py +++ b/backend/services/scoring_service.py @@ -112,7 +112,7 @@ class WeightedScorer: 'shelter': 2.0, 'settlement': 0.4, 'distance_mult': 2.0, - 'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно перекрыть ВСЕ водоёмы и ж/д пути.' + 'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно проверить ВСЕ водоёмы и ж/д пути.' }, 'эпилепсия': { 'water': 3.5, diff --git a/frontend/src/components/CaseForm/Step4Environment.jsx b/frontend/src/components/CaseForm/Step4Environment.jsx index f3ae7c8..1fa3a90 100644 --- a/frontend/src/components/CaseForm/Step4Environment.jsx +++ b/frontend/src/components/CaseForm/Step4Environment.jsx @@ -44,7 +44,7 @@ const Step4Environment = ({ data, updateData }) => { if (!hit) { updateData({ geocode_loading: false, - geocode_error: "Адрес не найден. Уточните: «пункт, адрес» без района/области.", + geocode_error: "Адрес не найден. Уточните: пункт, район, адрес.", }); return; } @@ -284,7 +284,7 @@ const Step4Environment = ({ data, updateData }) => { )} {!data.geocode_error && !data.geocode_found && (

- Формат «пункт, адрес» (район и область не нужны). Координаты заполнятся в поля выше. + Формат «пункт, район, адрес». Координаты заполнятся в поля выше.

)} diff --git a/services/rules_analysis.py b/services/rules_analysis.py index 6b11549..0ba8b82 100644 --- a/services/rules_analysis.py +++ b/services/rules_analysis.py @@ -90,7 +90,7 @@ def _immediate_actions(profiles: list[str]) -> list[str]: 'Опросить свидетелей в районе последнего местоположения', ] if 'РАС' in profiles: - actions.insert(0, 'КРИТИЧНО: Перекрыть все водоёмы и ж/д пути в радиусе 5 км') + actions.insert(0, 'КРИТИЧНО: Проверить все водоёмы и ж/д пути в радиусе 5 км') if 'велосипед' in profiles: actions.insert(0, 'Расширить зону поиска до 10-15 км, проверить дорожные камеры') return actions diff --git a/services/scoring_service.py b/services/scoring_service.py index ab1ad09..d70934b 100644 --- a/services/scoring_service.py +++ b/services/scoring_service.py @@ -112,7 +112,7 @@ class WeightedScorer: 'shelter': 2.0, 'settlement': 0.4, 'distance_mult': 2.0, - 'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно перекрыть ВСЕ водоёмы и ж/д пути.' + 'critical_warning': 'НЕ использовать громкоговоритель с именем ребёнка! Немедленно проверить ВСЕ водоёмы и ж/д пути.' }, 'эпилепсия': { 'water': 3.5,