Записка к плану ремонтов (ИИ)
Пояснительная записка помощника к плану ремонтов: насколько можно доверять расчёту износа, какие группы участков обследовать или перекладывать в первую очередь и почему. Записка опирается на индекс износа, расходы по расчёту и журнал повреждений; если повреждения к участкам не привязаны или факторов мало, она так и пишет.
Возможности
- Получить пояснительную записку к выбранному расчёту износа: общая оценка и насколько ей можно доверять.
- Увидеть группы участков со сроком — «в этот сезон», «в следующий сезон», «наблюдение» — с причиной и действием.
- Щелчком по номеру участка показать его на карте (в группе видны первые 12, остальные — «ещё N»).
- Прочитать замечания к данным и следующие шаги.
- Ограничить записку фрагментом — тем же фильтром фрагмента, что у таблицы участков.
Как это работает
Что уходит в модель (ai/wear_plan.py): сводка расчёта износа (участков, средний износ, распределение по категориям, полнота факторов, участки без даты прокладки, с повреждениями, с расходом по расчёту) и 40 участков с наибольшим приоритетом. По каждому участку — узлы, фрагмент, Ø, длина, тип прокладки, срок службы, повреждения, баллы восьми факторов, износ, категория, коэффициент последствий, расход, приоритет.
Замечания к данным считает код и передаёт модели вместе со сводкой:
- заполнено не больше 2 факторов из 8 у более чем 80 % участков — «индекс опирается на срок и повреждаемость»;
- ни одного нарушения, привязанного к участкам, — «повреждаемость везде 0»;
- без даты прокладки больше 10 % участков.
Что делает модель. Объединяет участки в группы, для каждой — название, причина, действие и срочность (1 — в этот сезон, 2 — в следующий, 3 — наблюдение). Номера участков в группах сервер сверяет со списком из 40: чужие номера убираются. Текст записки — на языке интерфейса.
Записка не сохраняется: каждое нажатие — новый вызов модели.
Что нужно для работы
- Выполненный расчёт износа (окно «Износ и план ремонтов»). Кнопка неактивна, пока расчёт не выбран.
- Право «Запуск расчётов» и помощник ИИ, включённый на сервере. Без них кнопки «Записка к плану» нет.
Шаги
Откройте «Инструменты» и наберите в поиске «Износ и план ремонтов» — пункт выделен рамкой.

Нажмите пункт — откроется окно.

Выберите расчёт износа и нажмите «Записка к плану». Через несколько секунд появится записка: общая оценка и её достоверность, группы участков со сроком («в этот сезон», «в следующий сезон», «наблюдение»), причина и действие. Щелчок по номеру участка показывает его на карте.

Примеры
Расчёт износа №3 на копии Алматы («Износ участков 23.10.2026 21:21»): 91 004 участка, средний износ 27,67 %; во 2-й категории (20–40 %) — 90 990, в 3-й — 13. Код добавил к входу модели три замечания:
- у всех 91 004 участков заполнено не больше 2 факторов из 8 (у 81 417 — два, у 9586 — один);
- журнал нарушений не содержит привязанных к участкам записей — повреждаемость везде 0;
- без даты прокладки 9574 участка (больше 10 %).
Поэтому записка по этому расчёту говорит о низкой достоверности: индекс держится на сроке службы.
Если не получается
- Кнопки «Записка к плану» нет — ИИ выключен на сервере или нет права «Запуск расчётов».
- В записке «достоверность низкая» — у участков мало заполненных факторов износа; заполните год прокладки и результаты обследований.
- «Помощник ИИ не ответил: Расчёт износа ещё не выполнялся» — сначала выполните расчёт износа.
- «Помощник ИИ не ответил: Расчёт износа ещё не выполнялся» — сначала выполните расчёт износа.
- «Помощник ИИ не ответил: Ошибка на сервере: …» — модель недоступна (лимит, нет связи, ИИ выключен); таблица участков работает.
- В группе нет участков — модель назвала номера не из 40 переданных, сервер их убрал.
Для администратора
- Флаги:
AI_ENABLED,ANTHROPIC_API_KEY,AI_MODEL. Средний уровень рассуждения. Запись «AI» в журнале действий —tool=wear_plan, с номером расчёта, фрагментом и числом участков.
Для разработчика
- API:
POST /api/v1/ai/wear/plan(calculation_id— пусто: последний;fragment_id;top5–40) →calculation_id,summary,sections,notes,plan(summary,groups[]:title,reason,line_ids,recommended_action,urgency;data_quality,next_steps). - Сервер:
routers/ai.py,ai/wear_plan.py(build_user_input,_data_notes,_sanitize,MAX_SECTIONS = 40),database/wear.py, промптai/prompts/wear_plan.md. - Веб:
components/WearIndexDialog.vue(makePlan, блок.wear__plan),services/wearService.ts. - Тесты: API —
tests/test_wear.py; e2e —e2e/functions/ai.spec.ts.
