Что сделано
Починен поиск расценок (главная проблема)
Матчер не находил нужные расценки из-за слишком широкого поискового запроса: AI генерировал 5–12 слов, среди которых были очень общие («установка», «крепление», «конструкция») — в базе 207k расценок, большинство из которых содержат эти слова. Результат: в ответ приходило 42 000 строк, а нужная расценка на металлодетектор оказывалась на 42 001-м месте.
Исправление двойное: (1) поисковый движок теперь автоматически отфильтровывает общие слова перед построением запроса, (2) AI-помощник получил инструкцию выдавать 2–4 наиболее специфичных слова. После этого 4.10-161-1 («Монтаж стационарного металлодетектора арочного типа») стала первой в выдаче.
Исправлен баг расчёта цен
Все расценки считались с нулём — поля «итого» показывали 0,00 ₽. Причина: в карточке объекта хранится номер дополнения ТСН (75 = «Доп.75»), а программа ошибочно использовала его как номер индексного сборника (нужен 214 = «МГЭ ремонт №214, I кв. 2025»). Добавили отдельное поле idx_period со значением по умолчанию 214.
Улучшен AI-подбор расценок
Уточнены инструкции AI-помощника: (1) для мелких электронных приборов использовать расценку «Монтаж механизма» нужного диапазона массы; (2) крепёжные изделия (анкеры, дюбели) — это работа по их установке, а не оборудование; (3) предпочитать предложить расценку (сметчик уберёт лишнее), чем не предложить ничего.
Живой матч на продакшне
Запустили через боевой API с реальной авторизацией. Результат для системы «Антитеррор» (6 позиций):
| Позиция | Расценка | Итого (тек.) |
|---|---|---|
| Стойка металлодетектора «Паутина» | 4.10-161-1 | 5 189,33 ₽ |
| КРП-09 | 4.11-16-1 | 992,56 ₽ |
| Локализатор «Фонтан-2» | 4.37-1-1 | 12 515,24 ₽ |
| Газоанализатор «КРОН-НВ» | 4.11-16-1 | 992,56 ₽ |
| Стол досмотровый | — (только оборудование) | — |
| Анкер химический | 3.70-41-1 | 2 779,20 ₽ |
Сумма по монтажным расценкам: ~22 469 ₽. Цена металлодетектора (5 189,33 ₽) совпадает с принятым актом копейка в копейку.
Каждая расценка среднего уровня уверенности показывает 3 альтернативы — сметчик может переключиться на нужную одной кнопкой.
Решения
- Числа индексного сборника и номера дополнения ТСН хранятся раздельно — это два разных справочника с разной нумерацией.
- Поиск расценок: сначала убираем «шум» (общие глаголы и существительные), потом ищем по оставшимся специфичным словам.
- AI выдаёт черновик, сметчик правит — это правильный баланс для данного класса задач.
Что дальше
- Допрогнать автоматическое заполнение наименований расценок (~9 800 вариантов остаётся, запущено в фоне на дешёвой модели).
- Показать Руслану — попросить протестировать на его актуальных документах.
Расход часов
- Диагностика бага поиска и написание фильтра стоп-слов: 1 ч
- Исправление бага
idx_periodи отладка расчётов: 0,5 ч - Улучшение AI-инструкций и повторный прогон матча: 1 ч
- Деплой, тесты, верификация через API: 0,5 ч
- Итого: 3 ч