Смотрю на этот текст и понимаю, что все пользуются ИИ, просто кто-то это хорошо скрывает.
Сейчас всё больше рабочих задач имеет смысл не просматривать вручную, а сначала прогонять через ИИ. Закупки — хороший пример такой задачи.
Проблема не только в том, чтобы открыть сайт ЕИС и вбить пару фильтров. Проблема в том, что нужно быстро понять: подходит закупка или нет, относится ли она к нужной теме, есть ли там нужные работы, стоит ли тратить время на документацию.
В закупках есть отдельная большая работа — постоянно просматривать новые публикации, отсекать нерелевантное и выбирать то, что стоит разобрать детально. На один подходящий договор могут уходить недели такого просмотра. В компаниях это нередко отдельная роль: человек ежедневно мониторит площадки, проверяет закупки, открывает документацию и решает, что передавать дальше специалистам.
ИИ с такой первичной сортировкой может помочь. Но для этого ему нужно дать нормальные данные: таблицу, где есть номер закупки, заказчик, регион, наименование, цена, сроки, ОКПД2, ссылка и дополнительные поля.
Мне был нужен не просто “поиск на сайте”, а программа, которая создаёт Excel для последующей загрузки в ИИ и ручного анализа.
Так появилась идея сделать локальную программу, которая:
запускается на компьютере пользователя;
работает через простой интерфейс в браузере;
скачивает данные из ЕИС;
фильтрует закупки по закону, региону, датам, цене, статусу, заказчику и ОКПД2;
дополнительно отбирает закупки по ключевым словам;
сохраняет результат в Excel;
не отправляет токен и данные на сторонние серверы.
Проект и эта статья сделаны при активной помощи ИИ. ИИ помогал раскладывать задачу на этапы, писать код, формулировать тесты, проверять README и искать ошибки. При этом ключевые вещи проверялись вручную: тесты, smoke-проверки, реальные ответы ЕИС и итоговые Excel-файлы.
Если где-то в проекте есть решения, которые опытный разработчик назовёт нейропомоями, буду рад критике. Для этого проект и открыт.
Репозиторий: https://github.com/longhairdude/zakupki-gov-ru
При использовании программы не забудь отключить vpn
Почему не получилось просто взять данные с сайта
Первой идеей было пойти самым очевидным путём: взять сайт ЕИС и попробовать автоматизировать работу с ним.
На практике этот вариант я отбросил. Парсинг сайта не дал стабильного рабочего результата. Сайт — это пользовательский интерфейс, а не API. Там есть динамика, состояния страницы, параметры поиска, ограничения и поведение, которое неудобно воспроизводить программно.
То, что глазами кажется обычной таблицей, для автоматической обработки может оказаться нестабильным источником.
Поэтому я пошёл через интеграционный сервис ЕИС getDocsIP. Это сложнее на старте, но зато данные приходят в виде архивов с XML, которые можно нормально разбирать, проверять и превращать в Excel.
Для доступа нужен текстовый токен сервисов отдачи информации ЕИС. Это не USB-токен электронной подписи, а отдельный токен для интеграционного сервиса.
Что получилось
Сейчас программа умеет искать закупки по 44-ФЗ и 223-ФЗ, выгружать результат в Excel и работать через локальный веб-интерфейс.
Обычный сценарий такой:
Пользователь запускает
start_windows.cmd.В браузере открывается локальный интерфейс.
Пользователь выбирает закон: 44-ФЗ или 223-ФЗ.
Указывает регион, даты, статус, цену, ОКПД2, заказчика и ключевые слова.
Нажимает кнопку выгрузки.
Программа скачивает архивы из ЕИС, разбирает данные, применяет фильтры и создаёт Excel.
Полученный Excel можно открыть самому или загрузить в ИИ для первичной оценки закупок.
Основной упор был на то, чтобы программой мог пользоваться человек, который не пишет код. Поэтому всё завязано на интерфейс в браузере, а команды для консоли оставлены только как дополнительный вариант.
Какие фильтры есть
В интерфейсе можно выбрать:
закон: 44-ФЗ или 223-ФЗ;
регион;
дату и глубину поиска;
статус;
цену;
заказчика;
ОКПД2;
максимальное количество строк в Excel.
Кроме обычных фильтров есть файл filters.yaml с ключевыми словами. Это личный профиль поиска.
Например, если интересны закупки по разработке и сопровождению программного обеспечения, можно задать:
target_keywords: - программное обеспечение - разработка - сопровождение required_context_keywords: - информационная система exclude_keywords: - картридж - бумага
Так можно быстро менять направление поиска: один набор слов для программного обеспечения, другой — для электромонтажных работ, третий — для обслуживания оборудования.
Если filters.yaml не создан, программа всё равно работает — просто применяются фильтры из интерфейса.
Зачем здесь Excel и ИИ
Excel здесь не побочный результат, а центральная часть сценария.
Идея не в том, чтобы программа сама решала, какие закупки брать в работу. Идея в том, чтобы собрать нормальную таблицу, которую можно быстро посмотреть самому или загрузить в ИИ.
Например, можно попросить ИИ:
выделить закупки, похожие на ваш профиль работ;
объяснить, почему закупка может быть интересной;
сгруппировать закупки по типам работ;
найти нерелевантные строки;
составить краткое резюме по каждой закупке;
помочь сформировать список закупок для ручной проверки.
Программа отвечает за сбор и нормализацию данных. ИИ помогает в первичном анализе. Человек оставляет за собой итоговое решение.
Особенности 223-ФЗ
С 223-ФЗ оказалось чуть сложнее, чем с 44-ФЗ.
Во-первых, одна закупка может содержать несколько лотов. Поэтому в Excel одна строка по 223-ФЗ соответствует одному лоту.
Во-вторых, у части лотов может отсутствовать НМЦК. В этом случае в Excel ячейка цены остаётся пустой, а не превращается в ноль или строку None.
В-третьих, статусы 223-ФЗ пока сохраняются так, как приходят из ЕИС. Например, может быть статус P. Поэтому для первого поиска по 223-ФЗ в интерфейсе лучше выбирать статус Все.
Это не идеальный UX, но я решил не делать неподтверждённый перевод статусов до отдельной проверки справочников.
Что было самым неприятным
Самым неприятным оказалась не сама обработка XML, а различия между почти одинаковыми запросами к ЕИС.
На одном этапе диагностическая команда уже успешно получала ссылку на архив, а новый поиск по 223-ФЗ получал ошибку ЕИС:
Токены для сервисов отдачи отсутствуют в ЕИС
Сначала это выглядело как проблема доступа или VPN. Но потом стало ясно, что запрос в одном месте собирался немного иначе, чем в рабочей диагностике.
В итоге я вынес сборку запроса в общий helper, чтобы диагностика и рабочий поиск использовали одну и ту же форму запроса.
Маленький вывод: если один запрос уже работает, не стоит руками собирать “почти такой же” в другом месте.
Что сделано с помощью ИИ
Проект почти полностью делался в режиме парной разработки с ИИ.
ИИ помогал:
разложить задачу на маленькие этапы;
писать и править код;
формулировать тесты;
искать места, где можно сломать старую работу 44-ФЗ при добавлении 223-ФЗ;
проверять README для обычного пользователя;
готовить эту статью.
Но это не был режим “ИИ написал, я поверил”. После каждого небольшого шага я запускал тесты, проверял интерфейс, делал реальные smoke-тесты и смотрел итоговые Excel-файлы.
Финальная проверка перед публикацией:
331 passed
Я понимаю, что код, написанный при активной помощи ИИ, может выглядеть спорно. Где-то наверняка можно сделать проще, чище и правильнее. Поэтому проект открыт, и критика приветствуется.
Что сейчас ограничено
Проект рабочий, но не закрывает все возможные сценарии.
Сейчас есть ограничения:
ПП РФ 615 не подключён;
смешанный поиск 44-ФЗ + 223-ФЗ пока не поддерживается;
статусы 223-ФЗ пока не переводятся в человекочитаемый вид;
поиск по ИНН заказчика пока не реализован;
поиск по прикреплённым файлам не реализован;
качество результата зависит от токена ЕИС, доступности сервиса и настроек фильтров.
Подробное описание установки и использования есть в README на GitHub.
Зачем выкладываю
Я выкладываю проект как open-source не потому, что он закрывает все сценарии, а потому что он уже решает конкретную задачу: помогает собрать Excel с закупками из ЕИС для дальнейшего анализа.
Если вы работаете с закупками и регулярно просматриваете ЕИС вручную, буду рад обратной связи:
каких фильтров не хватает;
какие поля нужны в Excel;
насколько удобно использовать результат для анализа через ИИ;
что стоит добавить в первую очередь.
Репозиторий: https://github.com/longhairdude/zakupki-gov-ru
При использовании программы не забудь отключить vpn
longhairdude Автор
Время появилось, перечитал ещё раз внимательно. Есть куда стремится. Корректировать эту статью не буду, каждый может сделать вывод для себя как работать с ИИ при подготовке статьи и в ходе работы над продуктом. Говорить что ИИ это тупиковый путь нельзя, нужно подбирать инструменты корректно. Только опыт и опыт других.