Разбор формата
Первым шёл агент-исследователь: разобрал структуру исходного PDF: как коды лежат внутри, по какому признаку определяется граница модели, что считать одной позицией. Пока правило не описано словами, кодировать нечего.
Маркировка «Честный знак»: коды на партию приходят одним PDF, а на складе нужен отдельный файл под каждую модель. Резали руками. Собрал веб-сервис, который делает это сам и сам же сверяет, что ни один код не потерялся и не задвоился.
первый прогон
вместо дня
кодов
Маркировка устроена так: на партию приходит один PDF, внутри лежат коды всех моделей подряд. Складу такой файл бесполезен. Ему нужен отдельный документ под каждую модель, иначе нечего отправлять в печать.
Раньше файл разбирали вручную: открыть, найти, где кончается одна модель и начинается следующая, вырезать диапазон страниц, сохранить, назвать, повторить. На партии в 500 страниц это занимало рабочий день одного человека.
Проблема даже не в часах. Ручная нарезка это операция, где ошибку не видно сразу:
Всё это всплывает не за компьютером, а на складе: когда файлы уже ушли в печать, а отгрузка стоит. Задача звучала так: убрать из процесса и день работы, и саму возможность промахнуться.
Задача узкая, правило понятное, а цена ошибки высокая: такие автоматизируются первыми.
Первым шёл агент-исследователь: разобрал структуру исходного PDF: как коды лежат внутри, по какому признаку определяется граница модели, что считать одной позицией. Пока правило не описано словами, кодировать нечего.
Логика нарезки зафиксирована как проверяемое условие: каждая страница относится ровно к одной модели, каждый код с входа обязан найтись ровно в одном файле на выходе. Это условие сервис проверяет на каждом прогоне и падает, если оно нарушено.
Веб-интерфейс с входом по логину: загружаешь файл и получаешь готовые PDF по каждой модели. Ни Python, ни командной строки, ни инструкций на две страницы. Менеджер работает так же, как с любым сайтом.
Отдельный шаг после нарезки пересчитывает коды: сколько было на входе, сколько разошлось по выходным файлам, нет ли дублей и потерь. Не сошлось, и сервис говорит об этом сразу, до того как файлы уйдут в печать.
Сервис работает под systemd: поднимается сам после перезагрузки сервера, отдаётся по HTTPS и закрыт логином. Это разница между «однажды запускали» и «этим пользуются».
Проверял не автор кода: отдельный проход прогнал реальную партию и сверил результат постранично. Тот, кто делал, свою работу не принимает.
| Что | Цифра |
|---|---|
| Первый прогон: страниц на входе | 500 |
| Файлов на выходе, разложенных по моделям | 23 |
| Времени на разбор партии | минуты вместо рабочего дня |
| Проверка кодов | 100%, каждый код сверяется автоматически, на каждом прогоне |
| Было / стало | рабочий день сотрудника на одну раскладку → минуты |
| Статус | работает каждый день: systemd + HTTPS + вход по логину |
Минуты вместо рабочего дня. И ошибиться в этой операции больше негде: раскладку проверяет программа. Сервис делает одно и то же одинаково и сам сообщает, если что-то не сошлось.
Сервис живёт на домене legion-gpu.ru, том же, где собран сайт аренды GPU-серверов с 19+ посадочными и сквозной атрибуцией заявок.
Напишите в двух-трёх предложениях, что происходит сейчас. Отвечу, реально ли собрать похожее у вас, за сколько и что понадобится с вашей стороны.
Любой скриншот открывается в полный размер по клику.
Обработка: Python, работа с PDF постранично, сверка кодов как проверяемый инвариант.
Интерфейс: веб-форма с входом по логину, загрузка файла → выдача готового архива по моделям.
Прод: systemd-юнит (автозапуск после перезагрузки), HTTPS, домен компании.
Процесс: сборка агентами: разбор формата → правило → код → проверка на реальной партии.
Это внутренний веб-сервис для ООО «Легион» (legion-gpu.ru/znak/): PDF с кодами маркировки на всю партию автоматически делится по моделям, и сервис сам сверяет, что ни один код не потерялся и не задвоился. Первый прогон: 500 страниц разложены на 23 файла за минуты, хотя раньше на ту же операцию уходил рабочий день сотрудника. Сервис боевой, работает каждый день.
Признаки одни и те же: файл или выгрузка приходят регулярно, обработка идёт по понятному правилу, человек тратит на неё часы, а ошибка вылезает уже у клиента. Прайсы поставщиков, акты, спецификации, реестры, коды маркировки. Это одна и та же задача в разных обложках. Кирилл Юсупов, Москва, разбирает такой процесс и говорит, автоматизируется ли он, за сколько и что понадобится со стороны заказчика.
Тем, что он поставлен как боевая система: автозапуск, HTTPS, логи, авто-сверка результата и отдельный шаг проверки, где свою работу принимает не тот, кто её делал. Исходники, доступы и инструкция передаются заказчику: сервис не привязан к исполнителю и продолжает работать без него.
Признаки задачи, которая автоматизируется первой: файл или выгрузка приходят регулярно, обработка идёт по понятному правилу, человек тратит на неё часы, а ошибка вылезает уже у клиента. Прайсы поставщиков, акты, спецификации, реестры, коды маркировки, всё это одна и та же задача с разными обложками.
Разбор задачи · Москва
Расскажите, что у вас режут, сводят или перебивают руками. Скажу, автоматизируется ли это, за сколько и что понадобится с вашей стороны. Если это не моя задача, скажу прямо.