Евгений Сайты › Peppers Сбер ID
Сайты, SEO и GEO, реклама, чат-боты, ИИ и дизайн | Москва
Рейтинг
9 371
№ 111 в каталоге
Отзывы
Профессионализм
9/10
Коммуникация
9 /10
Город
Москва
Опыт работы
11 лет
На сайте с
2016 года
Юридический статус
Самозанятый
Freelance.Boutique
Премиум-сервис для лучших исполнителей

ИИ-агенты для склада фулфилмента: имитационное моделирование смен и заторов, перенос модели из MATLAB на Python и NumPy

Используемые навыки MATLAB NumPy Streamlit Большие данные Имитационное моделирование

Описание

Склад фулфилмента получил модель, которая проверяет график смен перед распродажей, и ИИ-агента, который прогоняет сценарии и предлагает варианты расстановки людей. Руководитель смены работает с ними в обычном веб-интерфейсе. Всё это собрал Евгений Росляков. С 2016 года он делает сайты и рабочие веб-инструменты для бизнеса. Оформлен как самозанятый, подписывает договор, а для юрлиц готовит закрывающие документы. Принимает проекты в Москве, работает и удалённо.

Склад принадлежит логистическому оператору и обслуживает несколько интернет-магазинов. В обычные недели всё идёт ровно. Перед большими распродажами поток заказов растёт скачками, и никто не знал заранее, сколько человек ставить на смены и где встанет работа. Решения принимали по памяти: «в прошлый раз хватило двадцати человек». Потом оказывалось, что зона упаковки забита, а на сборке люди простаивают.

Ошибки стоили денег. Простой оплачивается, а заказы, которые не успели собрать в срок, магазины штрафуют или отменяют. Склад растёт: приходят новые клиенты, и старый опыт перестаёт подходить.

У логистов была своя модель в MATLAB. Её сделал один аналитик, работала она только на его компьютере, вводные правились прямо в коде, и к ней обращались раз в год.

Руководителю смены нужен был инструмент, чтобы за час самому проверить план, а не ждать аналитика неделю, и чтобы он подсказывал, какой график выбрать.

Решение

Сначала я разобрал старую модель. Выписал, что она считает: приход заказов по часам, зоны сборки, переходы между ними, упаковку, отгрузку. Сверил логику с руководителями смен. Правила, известные всем на складе, были зашиты в код неточно, их поправили.

Модель на MATLAB переписана на Python. Склад в ней проживает смену шаг за шагом по минутам: заказы приходят, встают в очереди у зон, обрабатываются сотрудниками. Состояние зон хранится в массивах NumPy, а прогоны с разными вводными считаются векторно, так что сотни вариантов занимают минуты. Имитационное моделирование теперь запускается без MATLAB и без аналитика. Результаты сверяли со старой версией на одних и тех же данных, пока цифры не сошлись. MATLAB-код остался у аналитика как эталон для проверки.

Параметры модели взяты из истории: заказы за два года, сканы на сборке и упаковке, время простоев. Это миллионы строк, и Большие данные в таблицах руками не разобрать. Поэтому из них автоматически считаются распределения: сколько строк в заказе, сколько уходит на упаковку, как меняется поток в дни акций.

Поверх модели работает ИИ-агент. Он получает прогноз заказов на распродажу и сам запускает серию сценариев с разным числом людей по зонам. Смотрит, где копится очередь, и предлагает два-три варианта графика с коротким пояснением, чем они различаются. Агент действует в строгих рамках: он вызывает только модель и может менять только число людей по зонам и часам. Все цифры в ответе берутся из расчёта, а не придумываются языковой моделью. Назначать смены агент не может, решение принимает человек.

Интерфейс для руководителя смены сделан на Streamlit. Он загружает прогноз, двигает ползунки по зонам, видит график очередей по часам и сравнивает варианты рядом.

Результат

Подготовка к распродаже выглядит иначе. Руководитель смены сам загружает прогноз, за несколько минут просматривает сценарии и приходит на планёрку с графиком, который можно обсуждать. Раньше на планёрке спорили на ощущениях, теперь спорят о конкретных допущениях.

Модель показала то, о чём не думали. Узким местом в распродажу оказалась не сборка, а столы упаковки и выход к отгрузке. Часть людей на пиковые часы перенесли из сборки в упаковку, и очередь стала расти медленнее.

Аналитик перестал быть единственным, кто может запустить расчёт. Код лежит в общем репозитории, вводные правятся через интерфейс, а не в тексте программы.

Модель настроена на прошлые распродажи и хорошо считает типичные нагрузки. Если случится небывалое, например сорвётся поставка или встанет конвейер, прогноз придётся перепроверять вручную. Поэтому ИИ-агенты в таком проекте работают советчиками, а последнее слово остаётся за логистом.

Обсуждаем следующий шаг: подтягивать фактические данные прямо в день акции и пересчитывать график по ходу смены. Пока этого нет, модель работает на плановых данных.

Если смены на вашем складе или в цехе планируются «на глаз», черкните мне через freelance.ru: обсудим, какую модель собрать.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Создание сайта магазина автозапчастей: поиск по артикулу на Elasticsearch, каталог в MongoDB, кэш Redis
Создание сайта магазина автозапчастей: поиск по артикулу на Elasticsearch, каталог в MongoDB, кэш Redis
18
Веб-разработка и IT Автодеплой сайта интернет-магазина для кемпинга: CI/CD в GitLab, окружения в Docker Compose и Docker, Git-ветки и релизы без FTP
Автодеплой сайта интернет-магазина для кемпинга: CI/CD в GitLab, окружения в Docker Compose и Docker, Git-ветки и релизы без FTP
13
Маркетинг и Продвижение Продвижение в интернете для службы доставки еды в Тбилиси: аналитика заказов в Google Analytics, Meta Pixel, A/B-тестирование и дашборд для владельца
Продвижение в интернете для службы доставки еды в Тбилиси: аналитика заказов в Google Analytics, Meta Pixel, A/B-тестирование и дашборд для владельца
16
Маркетинг и Продвижение Продвижение в интернете джазового сезона в Москве: пресс-релизы, PR в СМИ, промо-акции с партнёрами и «вирусные» ролики
Продвижение в интернете джазового сезона в Москве: пресс-релизы, PR в СМИ, промо-акции с партнёрами и «вирусные» ролики
14