Розробка 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% для більшості днів.

Завдання прогнозування

Прогноз кількості обкладинок: Скільки гостей відвідає ресторан у кожний часовий слот (сніданок/обід/вечеря або кожні 30 хвилин).

Дохід від одного обкладинки: Середній чек залежить від: дня тижня, сезону, спеціальних меню, складу аудиторії.

Прогноз попиту на страви: Які страви та в якій кількості будуть замовлені. Основа для mise en place – підготовки інгредієнтів.

Вимоги до персоналу: Cover count → кількість офіціантів, кухарів, хостес на кожен slot.

Фактори, що визначають попит

Чинник Вплив Як врахувати
День тижня Пт-Сб в 2-3× вище пор Dummy variables
Свята +30-80% у неробочі Святковий календар
Погода Дощ: -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

Мікс категорій:

# Исторически: в обед заказывают 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 страви: не прогнозуємо індивідуально - груповий прогноз за категорією.

Зменшення відходів

Зайві заготовки → food waste. ML-система мінімізує:

Безпечна кількість замовлення:

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

Управління терміном придатності:

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

Слідник харчових відходів: IoT ваги на смітті → зворотний зв'язок: якщо викидаємо конкретний інгредієнт → знизити замовлення.

Оптимізація персоналу

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

Трубопровід:

  • Щодня 07:00: імпорт вчорашніх даних із POS
  • Перерахунок прогнозу на 14 днів уперед
  • Повідомлення шеф-кухаря: mise en place plan на завтра
  • Повідомлення управляючого: staffing plan на 3 дні

Метрики:

  • Кількість покриття MAPE: < 10% для наступного дня
  • Попит на страву MAPE: < 15% для топ-10 блюд
  • Зменшення харчових відходів: 15-30%
  • Labor cost savings: 5-10% на оптимізації розкладу

Терміни: базова cover forecast + staffing - 4-5 тижнів. Повноцінна система з dish-level прогнозом, waste tracker та POS-інтеграцією – 3-4 місяці.