Обсудить задачу
Проектно-изыскательский бизнес · 7 недель

Тендеры и AI-анализ закупок

Тендерный отдел вручную искал закупки, отсеивал их и разбирал десятки файлов документации. Система находит закупки по сохранённым фильтрам, считает многокритериальную оценку, собирает документы и готовит аналитический отчёт для решения об участии.

−50% затрат на персонал
Результат
Измеримые величины по проекту.
4часа
полный цикл от отбора тендера до готового комплекта документов — было 3 рабочих дня
−50%
затрат на персонал коммерческого центра предприятия
≈0ошибок
в подготовке заявки
7недель
разработка и внедрение
Что было и что стало
Было

Поиск закупок специалист собирал вручную на каждой площадке, пригодность оценивал на глаз, а документацию — десятки файлов, часть из них в архивах — скачивал и просматривал целиком. На одну закупку уходили часы, и часть конкурсов пропускали просто по срокам подачи.

Стало

Полный цикл — от отбора тендера до готового комплекта документов — занимает 4 часа вместо трёх рабочих дней. Поиск идёт по сохранённым фильтрам и словарю ключевых слов. Каждая закупка получает многокритериальную оценку по цене, виду работ, заказчику и региону — с покомпонентной расшифровкой, из чего оценка сложилась и какие данные посчитать не удалось. Документация загружается одним действием, а модель готовит структурированный разбор: соответствие профилю, ресурсы, условия договора, финансовая оценка, риски и рекомендация. Решение принимает специалист, а ошибки в подготовке заявки сведены практически к нулю.

Тех. стек
.NET 8React 19PostgreSQLLLM в контуреBitrix24
скриншот дашборда (blur)
Проектные вызовы
Ограничения контура, легаси и сопротивление на местах — то, что определило срок.
  • Массовый сбор закупок при жёстких лимитах внешнего API: пул воркеров с общим счётчиком страниц, ограниченным остатком доступных запросов, повторы с паузами и дедупликация по реестровому номеру. При обрыве обхода сохраняется то, что успели собрать, а вызывающая сторона получает явное сообщение о частичном результате.
  • Прозрачность оценки: каждый критерий считается отдельно и сохраняется вместе с использованными коэффициентами. Цена оценивается кусочной функцией относительно «рабочего коридора» по виду работ, регион определяется через ФИАС по текстовому адресу поставки. Если данных не хватило, компонент помечается флагом «не рассчитан», и флаг доходит до карточки в интерфейсе.
  • Длительная AI-генерация: активная генерация регистрируется в реестре с накоплением уже полученного текста, поэтому подключившийся позже клиент сначала получает повтор накопленного, а затем продолжение в реальном времени. Перед повтором запроса система пытается восстановить ответ из истории чата — «просто перезапустить всё заново» неприемлемо, каждый запуск расходует ресурсы.
  • Работа с моделью вынесена в отдельный сервис-шлюз с собственным контрактом: чат, файлы, потоковая выдача, остановка генерации. Основной backend не знает деталей транспорта, поэтому модель заменяется без правок в прикладном коде — в том числе на локальную, разворачиваемую в контуре заказчика.
Другие кейсы
Проектно-изыскательский бизнес8 недель

Журналы геотехнического мониторинга

Отчётные журналы собирались вручную из четырёх разнородных источников, а тип марки заполнялся просмотром сотен фотографий. Настольное приложение сводит цикл наблюдений в готовый к сдаче комплект за один проход.

PythonPySide6YOLOOOXMLPyInstaller
−80% времени камеральной работы
Проектно-изыскательский бизнес9 недель

Платформа инженерных изысканий

Данные изысканий жили в разрозненных файлах Excel и перечерчивались в AutoCAD вручную. Платформа ведёт скважины, термометрию, электроразведку и разрезы в одной базе и строит их в чертеже как полноценные объекты.

.NET 8React 18C++ / ObjectARXPostgreSQLRedis
0ошибок при нанесении объектов

Расскажите, какой процесс болит

Разберём его на разговоре в 40 минут и скажем, что можно сделать за 4–6 недель. Если смысла нет — скажем и это.