Разработка AI-системы прогнозирования спроса для ресторанов

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1566 услуг
Разработка AI-системы прогнозирования спроса для ресторанов
Средний
~1-2 недели
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    901
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1119
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    853

Разработка AI-системы прогнозирования спроса для ресторанов

Управление запасами и персоналом ресторана напрямую зависит от прогноза гостепотока и заказов. Лишние заготовки → списания и убытки. Нехватка персонала → долгое ожидание → негативные отзывы. ML-система прогнозирует покрытие (cover count) и состав заказов с точностью 85-90% для большинства дней.

Задачи прогнозирования

Cover count forecast: Сколько гостей посетит ресторан в каждый временной слот (завтрак/обед/ужин, или каждые 30 минут).

Revenue per cover: Средний чек зависит от: дня недели, сезона, специальных меню, состава аудитории.

Dish demand forecast: Какие блюда и в каком количестве будут заказаны. Основа для mise en place — подготовки ингредиентов.

Staffing requirement: Cover count → количество официантов, поваров, хостес на каждый slot.

Факторы, определяющие спрос

Фактор Влияние Как учесть
День недели Пт-Сб в 2-3× выше ср Dummy variables
Праздники +30-80% в нерабочие Праздничный calendar
Погода Дождь: -15-25% для веранды NWP API
Специальные меню Рыбная пятница +20% Флаги промо
Мероприятия Концерт рядом +40% Event API
Сезон Лето: веранда +50%, зима -20% Месяц/сезон
Отзывы Вирусный TikTok → аномальный пик NLP мониторинг

Модель прогнозирования

features = {
    # Лаги
    'covers_lag_7d_same_slot': covers_7d_ago_same_time,
    'covers_lag_14d_same_slot': covers_14d_ago_same_time,

    # Время
    'day_of_week': dow,
    'time_slot': slot_30min,
    'month': month,
    'is_holiday': holiday_flag,
    'days_since_holiday': days_to_nearest_holiday,

    # Резервации (forward-looking)
    'reservations_for_slot': reservations_made_for_this_slot,
    'reservations_trend': reservations_vs_7d_ago,
    'walk_in_forecast': estimated_walk_in,  # covers - reservations

    # Внешние
    'temperature': temperature,
    'rain_probability': precipitation_probability,
    'nearby_events_score': event_impact_score,

    # Меню
    'special_menu_flag': has_special_menu,
    'promotional_campaign': active_promo
}

model = lgb.LGBMRegressor(n_estimators=300, learning_rate=0.05)

Прогноз по блюдам

Иерархия: Cover Forecast → Category Mix → Dish Demand

Category Mix:

# Исторически: в обед заказывают 60% основных блюд, 20% закусок, 20% десертов
# В ужин: 50%/25%/25%
# В праздник: +10% к десертам, +5% к алкогольным напиткам
def dish_category_mix(meal_type, day_type):
    base_mix = historical_category_mix[(meal_type, day_type)]
    return apply_seasonal_adjustment(base_mix, current_season)

Top-N блюд прогноз: Для каждого популярного блюда (топ-40, >80% выручки):

  • Доля в своей категории: XGBoost
  • Фичи: день недели, сезон, позиция в меню, цена

Long-tail блюда: не прогнозируем индивидуально — групповой прогноз по категории.

Waste Reduction

Лишние заготовки → food waste. ML-система минимизирует:

Safe Order Quantity:

SOQ = quantile(forecast_distribution, p=90)  # не медиана, а 90-й процентиль
# Лучше слегка переготовить (можно использовать завтра)
# чем 86'd dish (завершилось блюдо в меню)

Shelf life management:

  • Ингредиенты с коротким сроком → в блюда дня, акции
  • Pre-emptive 86: при низком прогнозе и малом количестве → убрать из меню заранее

Food waste tracker: IoT весы на мусоре → обратная связь: если постоянно выбрасываем конкретный ингредиент → снизить заказ.

Staffing Optimization

def staff_needed(covers_forecast, slot_minutes=30):
    """
    Covers → официанты через labor productivity norm
    """
    tables_needed = covers_forecast / avg_covers_per_table
    servers_needed = ceil(tables_needed / covers_per_server)

    # Кухня: covers × avg_dish_per_cover / production_capacity_per_cook
    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
    }

Интеграция с системой расписания: R&D Rotamaster, BambooHR, или Jowi — API для формирования смен на основе staffing forecast.

POS-интеграция

  • iiko, r_keeper, Tillypad: российские POS — API или SQL для исторических данных и обращений
  • Square, Toast, Lightspeed: западные POS — REST API
  • Reservation systems: Ресторанные возможности яндекс/2гис, OpenTable, Resy — API для reservations

Pipeline:

  • Ежедневно 07:00: импорт вчерашних данных из POS
  • Пересчёт прогноза на 14 дней вперёд
  • Уведомление шеф-повара: mise en place plan на завтра
  • Уведомление управляющего: staffing plan на 3 дня

Метрики:

  • Cover count MAPE: < 10% для следующего дня
  • Dish demand MAPE: < 15% для топ-10 блюд
  • Food waste reduction: 15-30%
  • Labor cost savings: 5-10% на оптимизации расписания

Сроки: базовая cover forecast + staffing — 4-5 недель. Полноценная система с dish-level прогнозом, waste tracker и POS-интеграцией — 3-4 месяца.