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