Разработка AI-системы прогнозирования спроса для ресторанов
Каждое утро шеф-повар гадает: сколько порций лосося заготовить? А управляющий — сколько официантов поставить на вечернюю смену? Ошибка в обе стороны — деньги на ветер. Мы решаем эту задачу с помощью ML. За более чем пять лет реализовали 40+ проектов для ресторанов от кофеен до fine dining, снижая food waste на 20-30% и labour cost на 5-10%.
Проблемы, которые мы решаем
Перепроизводство и списания
До 15% закупок уходит в мусор, если ориентироваться на «чутьё». AI учитывает 20+ факторов: день недели, погоду, праздники, брони, промоакции, даже вирусные посты в TikTok.
Нехватка персонала
В пятницу вечером посетителей на 40% больше, чем в среду, а график составлен по среднему — отсюда долгое обслуживание и негативные отзывы. Staffing forecast с точностью 85-90% подсказывает, сколько поваров и официантов нужно на каждый 30-минутный слот.
Затоваривание скоропортом
Ингредиенты с коротким сроком годности (зелень, морепродукты) — основная статья потерь. Система динамически корректирует заказ с учётом остатков и прогноза.
Почему AI, а не традиционные методы?
Экспертные таблицы или «опытный» менеджер дают ошибку до 30% на следующий день. ML-модель учитывает нелинейные зависимости: например, дождливый вторник после трёх солнечных даёт снижение на 15%, но если в соседнем ТЦ выставка — наоборот всплеск. По данным BCG, рестораны с AI-прогнозом сокращают отходы в среднем на 25%.
Сравним точность на реальных данных (ресторан итальянской кухни, 200 посадочных мест):
| Горизонт | Традиционный (эксперт) | AI (LightGBM) | Разница |
|---|---|---|---|
| Завтра | ±25% | ±8% | в 3× точнее |
| Неделя | ±40% | ±15% | в 2.7× точнее |
| Месяц | ±60% | ±25% | в 2.4× точнее |
ML-модель предсказывает в три раза точнее, чем ручной расчёт. На практике это означает экономию до 15% от затрат на закупки для ресторана на 100 посадочных мест. Свяжитесь с нами для предварительного аудита — мы оценим потенциал экономии для вашего ресторана за два рабочих дня.
Как мы это делаем: стек и пример кейса
Стек: Python, LightGBM / XGBoost, PostgreSQL + TimescaleDB, FastAPI для инференса, Grafana для дашбордов. Встраиваемся в вашу инфраструктуру: экономия на списаниях достигает 25% от закупок, что окупает внедрение за 2-4 месяца.
Кейс из нашей практики: сеть из 12 ресторанов в Москве. До внедрения — списания 14% от закупок. После — 9,5% (снижение на 32%). Проект занял 4 месяца с dish-level прогнозом. Шеф-повара получают утром план mise en place на день, управляющие — staffing на три дня вперёд. Интеграция с iiko через SQL view.
Как мы интегрируемся с вашей POS-системой?
Мы подключаемся к POS (iiko, r_keeper, Tillypad, Square, Toast) и резервным системам (Яндекс, OpenTable). Pipeline:
- Ежедневный импорт вчерашних данных (07:00)
- Пересчёт прогноза на 14 дней вперёд
- Отправка отчётов: шеф-повару (mise en place), управляющему (staffing), закупщику (SOQ)
Что входит в работу (deliverables)
- ETL-пайплайн для сбора и очистки данных из POS, погоды, событий
- ML-модель прогноза cover count (MAPE <10%) + dish demand (MAPE <15%)
- API для интеграции с системами расписания и закупок
- Дашборд в Grafana с реальными метриками и трендами
- Документация архитектуры и инструкции по эксплуатации
- Обучение управляющего и шеф-повара (2 дня + техподдержка месяц)
Сроки: пилот (cover + staffing) — 4-5 недель. Полная система с dish-level, waste tracking и POS — 3-4 месяца. Стоимость рассчитываем индивидуально после аудита — свяжитесь, оценим проект за два дня.
Staffing Optimization с примером кода
def staff_needed(covers_forecast, slot_minutes=30): tables_needed = covers_forecast / avg_covers_per_table servers_needed = ceil(tables_needed / covers_per_server) kitchen_needed = ceil(covers_forecast * avg_dishes / cook_hourly_capacity) return { 'servers': servers_needed, 'kitchen': kitchen_needed, 'host': 1 if covers_forecast > 20 else 0 } Интеграция с Jowi или BambooHR — смены создаются автоматически. Никакого ручного планирования.
Waste Reduction: точные закупки
Safe Order Quantity: заказываем не среднее, а 90-й процентиль распределения прогноза. Лёгкий перебор — можно пустить на комплименты или завтра, но никогда не закончится популярное блюдо в разгар ужина.
Shelf life management: если прогноз на конкретный ингредиент низок, а срок годности поджимает — система предлагает включить его в блюдо дня со скидкой.
IoT-весы на мусорных баках: фиксируем фактические списания, замыкаем контур обратной связи. Модель переобучается каждую неделю.
| Тип данных | Источник | Частота | Влияние на точность |
|---|---|---|---|
| История продаж | POS | Ежедневно | Высокое |
| Бронирования | OpenTable, Яндекс | В реальном времени | Среднее |
| Погода | OpenWeatherMap | Ежечасно | Среднее |
| События | Event-API | Ежедневно | Низкое, но значимое |
Пример развертывания
Типовой проект включает сервер на Linux (Ubuntu LTS), развёртывание в Docker-контейнерах, база данных PostgreSQL с TimescaleDB. CI/CD через GitLab pipelines. Мониторинг — Prometheus + Grafana.Как мы строим прогноз: пошагово
- Сбор данных — POS, погода, мероприятия, соцсети за последние 12+ месяцев.
- Очистка и агрегация — удаление выбросов, приведение к единому формату.
- Инжиниринг признаков — лаги, скользящие средние, one-hot кодирование.
- Обучение модели — LightGBM с кросс-валидацией по временным рядам.
- Инференс и мониторинг — ежедневный пересчёт с контролем качества.
Закажите консультацию — мы поможем вам внедрить прогнозирование и сократить потери.







