В этой статье я расскажу как я использовал новейшие возможности ИИ MSSQL 2025 для поиска гостендеров. Текущую рабочую версию я выложил на https://artemtender.ru
Не секрет, что сейчас тяжелые времена для программистов, тем более если тебе за 40, 80% резюме даже не доходит до рекрутеров. Я попробовал поискать работу на гостендерах. Не смотря на то, что общее мнение в том, что большая часть предложений там не рентабельна, с помощью вайбкодинга можно было бы вытянуть проект в плюс.
Оказалось что на zakupki.gos.ru найти что-то не реально. Там нет нормального фильтра, нужно вручную просматривать сотни позиций, и то позиция может выглядеть просто как “Разработка и поставка ПО”. Дальше нужно скачивать документацию вручную и читать. Первая мысль – нужно скармливать Chat GPT и спрашивать подходит ли заказ лично мне. С этим он справляется неплохо, но нужно в начале эту позицию найти, а с этим он уже не справится.
Решение следующее – необходимо зарегистрироваться в системе госзакупок и получить токен на получение данных. Для поиска позиций я использую косинусную сходимость. Тут очень пригодился новый тип Vector в MSSQL . В базе он выглядит так: [Vector] vec NULL. Этот тип уже поддерживается новейшим EF Core. Все названия закупок индексируются помощью модели ai-forever/ru-en-RoSBERTa методом проб и ошибок я выбрал ее. Подскажите в комментариях, может быть есть что то и лучше. Микросервис на пайтоне получает batch запрос на индексацию и через RabbitMQ возвращает в микросервис обработки БД на .NET Core. В профиле пользователь создает товары и услуги которые так же индексируются через поле Vector. Поиск и сравнение идет уже средствами самого MSSQL и в результате все работает довольно быстро. Скан нескольких сотен тысяч позиций происходит в реальном времени. Единственно, сама индексация не столь быстрая, поэтому я вынес в профиль. Кроме того, по моему это просто удобно – ведь твои услуги меняются не так часто и их проще выбрать из списка. В моем веб-приложении https://artemtender.ru это выглядит так:
Профиль пользователя необходим, для того, что бы создать запрос к LLM.
вот как выглядит поиск после заполнения профиля – регионы, проиндексированный вид работ
Теперь к ключевому функционалу. После поиска подходящих позиций по смыслу и региону необходим собственно анализ. Уже проанализированные заявки отображаются в виде значка 5 звезд. При нажатии Анализ сервер скачивает прикрепленные документы и с помощью сервиса pandoc трансфоримирует прикремленные doc/docx, xls/xlsx, pdf, rtf файлы в текст и используя описание из профиля направляет их на анализ в LLM. По завершению пользователь получает такой ответ (можно скачать в формате MS Word(docx))

По моему опыту в моем случае заказов, конечно, очень мало. Можно сказать нет вообще. Большинство закупок – это либо лицензии 1c/касперский/астралинукс либо сделано под конкретного исполнителя – доработка существующего проприетарного продукта. Я больше рассчитывал что нужно будет сделать какой-то областной госпортал/витрину, но такого я не находил.
Возможно этот проект пригодился бы более профильным поставщиках – много запросов по продуктам питания, всяким строительным работам, но продавец я никудышний и мой опыт опыт хотя бы пригодится другим людям.
Автор: youscriptor


