Рекомендация по техническим условиям (ИИ)
По заявке на подключение программа находит узлы сети рядом и режим в них по расчёту, а помощник ИИ пишет рекомендацию: к какому узлу подключать и при каких условиях. Текст — черновик для инженера.
Возможности
- Подобрать узлы подключения рядом с объектом заявки — с режимом по последнему расчёту, баллом и причинами (без ИИ).
- Оценить нагрузку объекта по этажности и площади застройки, если её нет в заявке (без ИИ).
- Получить рекомендацию помощника: какой узел выбрать и почему, запасные варианты, риски.
- Скопировать строку черновика ТУ: источник, камера, прирост нагрузки с разбивкой на отопление, вентиляцию и ГВС.
- Показать выбранную точку и всех кандидатов на карте.
Как это работает
Точки подбирает код (database/tu_connection.py). Ищутся узлы сети в радиусе от точки объекта: по умолчанию 300 м, от 20 до 2000 м. Один узел в нескольких фрагментах учитывается один раз — в варианте с самым свежим расчётом. Для каждого узла:
- располагаемый напор = напор подачи − напор обратки по расчёту;
- дополнительный расход — по нагрузке и перепаду температур в узле (если температур нет — 60 °C);
- скорость в участке после подключения — по нынешним скорости и расходу.
Балл — из 100: −1 за каждые 20 м расстояния (до 1000 м); −30, если по фрагменту нет расчёта; −25, если располагаемый напор меньше 15 м; −30, если скорость после подключения выше 3,5 м/с; −20, если участок уже перегружен; −10 за диаметр меньше 100 мм. В список — 8 лучших по баллу, при равенстве — ближние.
Нагрузка по аналогам — медиана удельной нагрузки на 1000 м² по зданиям АЛСЕКО (таблица zdaniya_2) той же этажности ±1, умноженная на площадь.
Рекомендацию пишет модель. «Рекомендация ИИ» заново подбирает точки и отдаёт модели: текст заявки, запрошенную и оценённую нагрузку, пороги и до 8 кандидатов со всеми числами; если кандидатов нет, модель не вызывается. Модель выбирает номер кандидата и пишет объяснение, запасные варианты, риски и черновик полей ТУ. Имена камеры и источника в черновике сервер берёт из выбранного кандидата, а не из текста модели; номер вне списка отбрасывается. Объяснение, варианты и риски — на языке интерфейса, черновик ТУ — по-русски, как в журнале.
Рекомендация ничего не записывает в журнал ТУ: строку черновика вы копируете сами.
Что нужно для работы
- Расчёт фрагмента, к которому подключаетесь: без него режим неизвестен и балл ниже на 30.
- «Рекомендация ИИ» и поле «Текст заявки» — право «Запуск расчётов» и помощник ИИ, включённый на сервере. Подбор точек и оценка нагрузки работают без них.
- Оценка нагрузки — здания АЛСЕКО с нагрузкой, этажностью и площадью (
zdaniya_2) в базе города.
Шаги
Откройте «Инструменты» и наберите в поиске «Технические условия» — пункт выделен рамкой.

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

В журнале технических условий нажмите «Точка подключения». Укажите место: адрес («Найти адрес») или «Центр карты»; нагрузку, Гкал/ч (или «Оценить нагрузку» по этажности и площади); при желании — текст заявки. Нажмите «Подобрать точки» — появятся ближайшие узлы и режим в них.

Нажмите «Рекомендация ИИ». Помощник выберет точку и опишет условия подключения и риски; строку черновика ТУ можно скопировать. Проверьте рекомендацию по режиму и примите решение сами.

Примеры
Точка у камеры тк6-5-24 (копия Алматы, фрагмент 74, нагрузка 0,5 Гкал/ч, радиус 300 м) — 8 кандидатов, первые:
| Узел | Расстояние | Ø, мм | Hрасп, м | Скорость, м/с | Доп. расход, т/ч | Источник | Балл |
|---|---|---|---|---|---|---|---|
| тк6-5-24 | 2,2 м | 500 | 65,51 | 0,377 → 0,388 | 8,04 | АТЭЦ2 | 99,9 |
| мтк6-5-25 | 11,2 м | 500 | 65,48 | 0,377 → 0,388 | 8,03 | АТЭЦ2 | 99,4 |
| мтк6-5-27 | 31,3 м | 300 | 65,14 | 1,03 → 1,06 | 8,04 | АТЭЦ2 | 98,4 |
| тк6-5-24 (другой фрагмент) | 2,4 м | 150 | — | — | 8,33 | — | 69,9 |
Числа — из ответа сервера; в окне расстояние и балл округлены до целых («2 м», «100»). Последняя строка — тот же узел во фрагменте без расчёта: 100 − 2,4 / 20 − 30 = 69,9.
Нагрузка по аналогам. 9 этажей, 800 м² — 0,4927 Гкал/ч: медиана 0,616 Гкал/ч на 1000 м² по 1286 зданиям 8–10 этажей.
Если не получается
- «В радиусе поиска нет узлов сети — увеличьте радиус или уточните точку» — увеличьте радиус (до 2000 м) или проверьте, что место рядом с сетью.
- Кнопки «Рекомендация ИИ» нет — ИИ выключен на сервере или нет права «Запуск расчётов»; подбор точек работает и без ИИ.
- «В радиусе поиска нет узлов сети — увеличьте радиус или уточните точку». «Рекомендация ИИ» без кандидатов модель не вызывает и отвечает «В радиусе … м нет узлов для подключения — увеличьте радиус или проверьте место».
- «Помощник ИИ не ответил: Ошибка на сервере: …» — модель недоступна; подбор точек и таблица остаются.
- «Подбор точек не выполнен: …», «Оценка нагрузки не выполнена: …» — ошибка сервера при подборе без ИИ.
- «Адрес не найден (Nominatim в пределах города)» — уточните адрес или возьмите «Центр карты».
Для администратора
- Флаги:
AI_ENABLED,ANTHROPIC_API_KEY,AI_MODEL. Средний уровень рассуждения. Запись «AI» в журнале действий —tool=tu_recommend, с числом кандидатов и нагрузкой. - Текст заявки уходит в модель как есть: не вставляйте в него ФИО и телефоны заявителя.
Для разработчика
- API:
POST /api/v1/ai/tu/recommend(lon,lat,request_textдо 4000,load_gcal_h,floors,area_m2,radius_m20–2000) →candidates,load_estimate,recommendation(chosen_index,explanation,alternatives,draft,risks),chosen. Без ИИ —GET /api/v1/technical-conditions/connection-candidates,GET /api/v1/technical-conditions/load-estimate. - Сервер:
routers/ai.py,ai/tu_recommend.py(build_user_input,_sanitize,MAX_CANDIDATES = 8),database/tu_connection.py(assess,connection_candidates,estimate_load), промптai/prompts/tu_recommend.md. - Веб:
components/ai/TuConnectionDialog.vue,services/tuConnectionService.ts; кнопка «Точка подключения» —components/TechnicalConditionJournalDialog.vue. - Тесты: API —
tests/test_tu_connection.py; e2e —e2e/functions/ai.spec.ts.
