Гид по технологиям

Как создать и интегрировать чат-бота доставки пиццы на Dialogflow

9 min read Чат-боты Обновлено 23 Dec 2025
Чат‑бот доставки пиццы на Dialogflow — руководство
Чат‑бот доставки пиццы на Dialogflow — руководство

Пицца доставляется через приложение для доставки еды

О чем статья

  • Что такое Google Dialogflow и зачем он нужен
  • Как создать агента (чат‑бота) заказа пиццы шаг за шагом
  • Как настроить сущности, интенты и ответы для подтверждения заказа
  • Как интегрировать чат‑бота на сайт (Dialogflow Messenger)
  • Как тестировать локально и на проде
  • Практические дополнения: критерии приёмки, чек‑листы, тесты, GDPR и безопасность

Что такое Google Dialogflow

Google Dialogflow — это платформа для создания чат‑ботов и виртуальных помощников. Она использует Natural Language Understanding (NLU) — компонент анализа естественного языка, который распознаёт смысл пользовательских фраз и извлекает параметры (сущности).

Определение: интент — это цель пользователя (например, «заказать пиццу»). Сущность — структурированные данные внутри фразы (например, адрес, размер, начинка).

Dialogflow предоставляет визуальный конструктор потоков, встроенные сущности системы (@sys.email, @sys.phone-number и т.д.), инструменты аналитики и возможность экспорта/импорта агентов.

Важно: Dialogflow подходит для быстрого прототипирования и для решений, где вам нужно минимальное кодирование и быстрая интеграция в мессенджеры и на сайты.

Преимущества использования Dialogflow

  • Быстрый старт: десятки преднастроенных агентов.
  • Поддержка системных сущностей (email, телефон, адрес, имя).
  • Визуальный редактор интентов и параметров.
  • Лёгкая интеграция в веб‑страницы и мессенджеры.

Когда Dialogflow может не подойти

  • Если вам нужна полная кастомизация NLU‑моделей на уровне обучения с нуля.
  • При жёстких требованиях к задержке (реaltime с миллисекундной задержкой) и полной автономности без облачных сервисов.
  • Если в проекте строгие ограничения на передачу пользовательских данных в облако.

Примечание: в таких случаях рассмотрите локальные NLU‑решения (Rasa, spaCy + custom), или гибридный подход: NLU локально и обработка платежей/логики в защищённом бэкенде.

Шаги создания чат‑бота доставки пиццы

Ниже — детальная последовательность действий. Я переорганизовал исходные шаги в один непрерывный рабочий процесс.

Подготовка

  1. Подготовьте Google‑аккаунт (аккаунт Google необходим для доступа к Dialogflow).
  2. Соберите список обязательных данных для заказа: имя, email, телефон, адрес доставки, размер пиццы, начинка, основа (корж).
  3. Определите варианты ответа подтверждения заказа и структуру итогового подтверждения (пример: «Спасибо, Иван. Вы выбрали: Большая пицца, пепперони, тонкое тесто. Адрес: …»).

Создание агента в Dialogflow

  1. Перейдите в Dialogflow и выполните вход под Google‑аккаунтом.
  2. Согласитесь с условиями и нажмите “Create Agent”. Агент представляет весь чат‑бот.

Страница создания агента в Google Dialogflow

  1. Введите имя агента без пробелов и нажмите “Create”.

Ввод имени агента и кнопка создать

Создание интентов (интеракций)

Интент — категория разговора. У Dialogflow уже есть Welcome intent. Нам нужно добавить интенты для сбора данных и оформления заказа.

  1. В меню слева выберите “Intents” и нажмите “Create Intent”.

Создание интента в Google Dialogflow

  1. Придумайте понятное имя интента, например: “Order.Pizza”.
  2. В разделе “Training phrases” добавляйте примеры пользовательских фраз: “Заказать пиццу”, “Хочу пиццу”, “Я хочу оформить заказ”.

Добавление тренировочных фраз в интент

  1. Примеры фраз для заказа: “Order Pizza”, “I want a Pizza”, “I want to order a Pizza” — добавляйте с вариациями и опечатками, чтобы улучшить распознавание.

Примеры тренировочных фраз для заказа пиццы

Настройка параметров (email, имя, телефон, адрес)

  1. Чтобы научить бота распознавать email, в поле добавления выражения введите пример: “Email ID Training: sampleemail@domainname.com”. Дважды щёлкните по формату email и выберите сущность @sys.email.

Выбор формата email для интента бота

  1. Сохраните интент. В разделе “Action and parameters” отметьте параметр email и нажмите “Define prompt…” — добавьте фразы‑подсказки, например: “Пожалуйста, укажите ваш email для подтверждения заказа.”

Заполнение поля действия и параметров для email

  1. Добавьте набор подсказок (prompts) для email — короткие дружелюбные фразы.

Добавление подсказок для email

  1. Повторите тот же подход для имени (@sys.given-name), телефона (@sys.phone-number) и адреса (@sys.address).

Важно: проверяйте, что в параметрах отмечен флаг “Required” (Обязательный), чтобы бот задавал недостающие поля.

Создание сущностей (Size, Topping, Base)

  1. В меню слева выберите “Entities” и создайте новую сущность.

Создание сущности для пиццы

  1. Создайте сущность с именем Size и добавьте значения: Regular, Small, Medium, Large, Monster (или локализованные варианты: Маленькая, Средняя, Большая, Монстр).

Добавление размеров пиццы

  1. Создайте сущности Topping (начинка) и Base (корж) с нужными вариантами.

Связывание сущностей с интентом

  1. В интенте Order.Pizza добавьте тренировочные фразы, где встречаются сущности, например: “Pizza Size Training: size” — выделите слово size и укажите тип @Size.

Добавление размера в интент

  1. Отмечайте все параметры как обязательные и задавайте соответствующие подсказки. Порядок вопросов можно изменить перетаскиванием.

  2. В секции “Responses” добавьте финальную текстовую подсказку, использующую параметризованные переменные: вставляйте сущности через символ $. Например:

“Спасибо, $given-name. Ваш заказ: $Size пицца, $Topping, $Base. Адрес доставки: $address. Контакт: $phone-number. Подтвердить заказ?”

Добавление текстового ответа для подтверждения заказа

Настройка профиля агента

  1. Нажмите на иконку “Settings (⚙)” рядом с именем агента.
  2. Обновите описание, при необходимости вставьте URL изображения для аватара агента и измените имя, чтобы оно соответствовало бренду.

Добавление аватара и описания бота

  1. Сохраните изменения.

Импорт и экспорт агента

Полный проект чат‑бота может быть доступен в ZIP‑архиве репозитория GitHub. Для импорта:

  1. Откройте Settings агента -> Export and Import -> Import from Zip и загрузите файл.

Это удобно для развертывания одинакового бота на нескольких агентах или для резервного копирования.

Интеграция Dialogflow Messenger на сайт

  1. В меню слева выберите “Integrations”.
  2. Пролистайте до раздела Text Based и выберите “Dialogflow Messenger”.

Dialogflow Messenger Beta

  1. Нажмите “Enable”.
  2. Скопируйте сгенерированный скрипт и вставьте его в вашей веб‑страницы.

Тестирование и запуск локально

Простой HTML‑файл (index.html)

Создайте файл index.html с минимальным шаблоном и вставьте туда скрипт Dialogflow Messenger.



    






Сохраните файл в папке проекта.

Запуск локального сервера

Один из простых способов — использовать Python для локального статического сервера. Откройте терминал в папке с index.html и выполните:

python3 -m http.server 9000

Откройте http://localhost:9000/index.html и проверьте, как выглядит и работает виджет бота.

Предпросмотр чатбота на сайте

Нажмите на виджет и пройдите сценарий заказа.

Стандартный вид интеграции чатбота

Кастомизация внешнего вида

Dialogflow Messenger поддерживает CSS‑переменные и стили. Вы можете изменить цвета пузырьков, фон и шрифты, вставив пользовательские стили в вашего HTML.

Кастомизированный вид чатбота на сайте

Практические рекомендации и методология разработки

Мини‑методология (MVP‑first):

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

Ментальные модели:

  • Модель «ошибка‑доверие»: сначала задавайте простые вопросы и подтверждайте критичные данные (адрес, телефон).
  • Модель «fallback control»: ограничьте количество fallback‑ответов и добавьте четкий путь к оператору.

Альтернативные подходы:

  • Rasa (open source) — если нужна локальная обработка NLU.
  • Dialogflow CX — если нужен более сложный поток с визуальными переходами для enterprise.
  • Простая кнопочная система (без NLU) — если диалог строго структурирован.

Критерии приёмки

  1. Бот корректно распознаёт и сохраняет имя, email, телефон, адрес, размер, начинку и основу в 95% тестов по набору тренировочных фраз.
  2. При отсутствии обязательного параметра бот задаёт уточняющий вопрос и повторяет попытку.
  3. Финальное сообщение содержит все выбранные параметры и предлагает подтвердить заказ.
  4. Интеграция на сайт работает без JS‑ошибок на текущем браузере проекта.
  5. Минимальные защитные механизмы против инъекций: данные экранируются до отправки в систему записи или в CRM.

Тестовые кейсы и позитивные/негативные сценарии

Позитивные тесты:

  • Пользователь вводит полный набор данных в одну фразу: “Я Ольга, хочу большую пиццу с грибами, тонкое тесто, адрес ул. Ленина, 5, телефон +7 912 123 45 67, email olga@mail.ru” — бот распарсит все сущности и предложит подтверждение.
  • Пользователь отвечает на уточняющие вопросы по одному параметру — бот корректно продолжает диалог.

Негативные тесты:

  • Некорректный email — бот просит повторить.
  • Неполный адрес — бот задаёт уточняющие вопросы.
  • Пользователь использует сленг или опечатки — бот использует fallback и предлагает варианты.

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

Роли и чек‑листы

Developer:

  • Создать агента и основные интенты.
  • Настроить сущности и их синонимы.
  • Вставить окончательные ответы с переменными.
  • Подготовить экспорт ZIP.

Product Owner:

  • Утвердить список обязательных полей и вариаций пиццы.
  • Проверить сценарии диалога и UX сообщений.
  • Организовать приёмочное тестирование.

QA:

  • Провести автоматизированные и ручные тесты по позитивным и негативным сценариям.
  • Проверить интеграцию на сайтах с разными браузерами и мобильными.

Ops:

  • Настроить доступы к Google‑аккаунту агента.
  • Обеспечить резервное копирование агента и логов.

Безопасность и защита персональных данных

  • Не храните чувствительные данные в диалогах без шифрования.
  • Используйте серверный компонент для обработки платежей: не передавайте данные карт через публичный чат.
  • Для хранения email/телефонов и адресов используйте защищённую базу с журналированием доступа.

Примечание по GDPR/локальным законам:

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

Меры безопасности (hardening)

  • Ограничьте доступ к проекту Dialogflow через IAM и используйте двухфакторную аутентификацию.
  • Логируйте только метаданные диалогов, а не полные PII, если это возможно.
  • Регулярно обновляйте список стоп‑слов и защитных фильтров для предотвращения инъекций.

Когда стоит подключать оператора (fallback)

  • Если бот сделал три подряд неуспешных распознавания — переводите на оператора.
  • Если пользователь просит изменить оформленный заказ, требующий вмешательства склада или курьера.

Оценка стоимости разработки и TCO (качественно)

  • Быстрый PoC в Dialogflow: низкие усилия и стоимость (несколько часов/дней).
  • Интеграция с CRM и платёжными шлюзами: средние усилия (несколько недель).
  • Поддержка и доработка NLU: постоянные усилия по обучению и обновлению корпуса фраз.

Примеры распространённых ошибок и как их избежать

  • Ошибка: бот не понимает варианты ввода размера (e.g. “L”, “большую”). Решение: добавить синонимы и шаблоны для сущностей.
  • Ошибка: порядок вопросов путает пользователей. Решение: тестируйте с реальными пользователями и выстраивайте естественный поток.

Решение проблем при интеграции

  1. Если виджет не загружается — проверьте консоль браузера на ошибки CORS и наличие скрипта в .
  2. Если сущности не распознаются — добавьте дополнительные тренировочные фразы и пометьте варианты как синонимы.

Модель принятия решения (Mermaid)

flowchart TD
  A[Пользователь открывает чат] --> B{Пользователь хочет сделать заказ?}
  B -- Да --> C[Собрать имя]
  C --> D[Собрать email]
  D --> E[Собрать телефон]
  E --> F[Собрать адрес]
  F --> G[Собрать параметры пиццы]
  G --> H[Показать подтверждение]
  H --> I{Подтверждает?}
  I -- Да --> J[Создать заказ в CRM]
  I -- Нет --> K[Изменить параметры]
  B -- Нет --> L[Ответ на общий вопрос или fallback]

Локальные альтернативы и особенности для России

  • Для локальных проектов с требованиями к хранению данных в России рассмотрите self‑hosted решения или настройку серверной части в российской облачной инфраструктуре.
  • Локализуйте названия пицц и начинки на русский язык, добавьте синонимы (например, пепперони → пепперони, перцовая колбаса).

Социальные превью (рекомендации)

OG title: Чат‑бот доставки пиццы на Dialogflow OG description: Быстрый гайд по созданию, обучению и интеграции чат‑бота заказа пиццы с тестами и чек‑листами.

Итог и следующие шаги

Чат‑бот на Dialogflow позволяет быстро запустить клиентский сценарий заказа пиццы и интегрировать его в сайт или мессенджер. Начните с MVP: минимальный набор данных и подтверждение заказа. Затем добавляйте оплату, интеграцию с CRM и автоматические уведомления курьерам.

Ключевые рекомендации:

  • Пишите короткие тренировочные фразы и добавляйте синонимы.
  • Проверяйте поведение при неправильных вводах.
  • Защищайте PII и соблюдайте локальное законодательство по данным.

Спасибо за внимание — следуйте чек‑листу и проводите приёмочное тестирование перед релизом.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Амортизация кредита с переменной ставкой в Excel
Финансы

Амортизация кредита с переменной ставкой в Excel

Как сохранить Google Sheets в PDF и опубликовать ссылку
Инструкции

Как сохранить Google Sheets в PDF и опубликовать ссылку

Как стать DevOps-инженером
Карьера IT

Как стать DevOps-инженером

iPhone медленно гасит экран — как убрать задержку
iOS

iPhone медленно гасит экран — как убрать задержку

Отключить автоустановку драйверов в Windows 11
Windows

Отключить автоустановку драйверов в Windows 11

Как анимировать рисунок в PowerPoint
Презентации

Как анимировать рисунок в PowerPoint