Смотрю на этот текст и понимаю, что все пользуются ИИ, просто кто-то это хорошо скрывает.
Сейчас всё больше рабочих задач имеет смысл не просматривать вручную, а сначала прогонять через ИИ. Закупки — хороший пример такой задачи.
Проблема не только в том, чтобы открыть сайт ЕИС и вбить пару фильтров. Проблема в том, что нужно быстро понять: подходит закупка или нет, относится ли она к нужной теме, есть ли там нужные работы, стоит ли тратить время на документацию.
В закупках есть отдельная большая работа — постоянно просматривать новые публикации, отсекать нерелевантное и выбирать то, что стоит разобрать детально. На один подходящий договор могут уходить недели такого просмотра. В компаниях это нередко отдельная роль: человек ежедневно мониторит площадки, проверяет закупки, открывает документацию и решает, что передавать дальше специалистам.
ИИ с такой первичной сортировкой может помочь. Но для этого ему нужно дать нормальные данные: таблицу, где есть номер закупки, заказчик, регион, наименование, цена, сроки, ОКПД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
ссылка на оригинал статьи https://habr.com/ru/articles/1044720/