В этой лабораторной работе вы узнаете, как использовать Dialogflow для создания диалогового интерфейса для включения агента RBM без написания кода.
Что вы собираетесь создавать в этой кодлабе?
- Агент Dialogflow, поддерживающий диалог агента RBM.
- Диалоговый интерфейс для вымышленной пиццерии, который отправляет пользователям предложение о скидке и позволяет им ознакомиться с меню ресторана.
Что вы узнаете
- Как использовать основную конструкцию намерения Dialogflow для создания диалогового интерфейса
- Как создать типы ответов RBM из Dialogflow, чтобы предоставить пользователям богатый опыт RBM.
Что вам понадобится
- Ваш аккаунт Google платформы RBM
Создайте и запросите своего первого агента
Продолжительность: 30:00
Создайте свой первый агент Dialogflow
Чтобы создать агент Dialogflow:
- Откройте новую вкладку и войдите в Dialogflow .
Нажмите Создать агента в левой панели навигации.
Введите «CodelabRBMPizzaPlace» в качестве имени вашего агента, «English» в качестве языка по умолчанию и установите часовой пояс по умолчанию на свой часовой пояс.
Щелкните Создать .
Консоль диалогового потока
Теперь вы должны увидеть консоль Dialogflow. Если вы работаете на меньшем экране и левая панель навигации скрыта, нажмите кнопку навигации в верхнем левом углу. Кнопка настроек позволяет перейти к настройкам текущего агента.
В середине страницы показан список намерений для агента. По умолчанию агенты Dialogflow запускаются с двумя намерениями. Ваш агент соответствует резервному намерению по умолчанию , когда он не понимает, что говорят ваши пользователи. Приветственное намерение по умолчанию приветствует ваших пользователей. Вы можете изменить эти намерения, чтобы настроить взаимодействие.
Справа — симулятор Dialogflow. Это позволяет вам опробовать своего агента, говоря или печатая сообщения.
Запрос вашего агента
Агенты Dialogflow лучше всего описываются как модули NLU (Natural Language Understanding). Их можно включить в ваше приложение, продукт или услугу, чтобы преобразовать естественные запросы пользователей в данные, которые можно использовать.
Пора попробовать своего агента! В симуляторе справа щелкните текстовое поле с надписью « Попробовать сейчас », введите «Привет» и нажмите Enter.
Dialogflow идентифицирует запрос, соответствует намерению приветствия по умолчанию и отвечает общим приветствием. Это работает, потому что Dialogflow автоматически обучает намерение приветствия по умолчанию с некоторыми примерами приветствия.
Создать агента RBM
Войдите в консоль разработчика Business Communications , затем щелкните Создать агента .
В поле «Имя» введите «Пиццерия вашего имени» (например, «Пиццерия Шона»), выберите регион и нажмите « Создать агента» .
Подключите своего агента RBM к Dialogflow
После создания агента RBM щелкните его, чтобы просмотреть страницу обзора агента. Щелкните ссылку « Интеграции » в левой панели навигации.
По умолчанию агент RBM использует Google Cloud Pub/Sub для обработки пользовательских сообщений. Чтобы подключить агент RBM к агенту Dialogflow, который вы создали ранее, щелкните интеграцию Dialogflow .
В диалоговом окне нажмите Подключить существующую модель . Следуйте инструкциям, чтобы предоставить вашему агенту RBM разрешения на вызов вашего агента Dialogflow. Когда вы выполнили инструкции, нажмите « Далее ».
Наконец, вам нужно указать идентификатор проекта Dialogflow. На вкладке браузера, отличной от консоли разработчика Business Communications, перейдите к Dialogflow и откройте созданный ранее агент CodelabRBMPizzaPlace. Щелкните значок шестеренки рядом с названием проекта в левой панели навигации.
Нажав на нее, вы попадете в настройки модели. В разделе GOOGLE PROJECT найдите и скопируйте идентификатор проекта .
Вернитесь на свою вкладку с открытой консолью разработчика Business Communications, вставьте идентификатор проекта в диалоговое окно и нажмите « Начать интеграцию » .
Этот процесс занимает около двух минут. После завершения вы должны увидеть выделенную опцию интеграции Dialogflow и доступную ссылку « Просмотреть агент» .
Все сообщения от вашего агента теперь обрабатываются агентом CodelabRBMPizzaPlace Dialogflow.
Пригласите свое тестовое устройство и отправьте сообщение
Прежде чем погрузиться в Dialogflow, давайте настроим ваше тестовое устройство. Если у вас еще нет устройства, способного принимать сообщения RBM, следуйте этому руководству , чтобы подготовить свое устройство.
В консоли разработчика Business Communications щелкните Устройства в левой области навигации. В форме введите полный номер телефона вашего устройства в формате E.164 (например, +12223334444) и нажмите Добавить .
На ваше устройство вы получите тестовое приглашение. Коснитесь Сделать меня тестировщиком .
В браузере найдите свое устройство в списке устройств и отправьте ему тестовое сообщение. Если вы получили сообщение на свое устройство от агента RBM, все готово для продолжения работы с этой лабораторией кода.
Создание приветственного намерения
Обычно с агентом RBM на базе Dialogflow, чтобы начать разговор, вы делаете вызов API, который указывает номер телефона пользователя и намерение Dialogflow, с которого начинается разговор (обычно приветственное намерение вашего агента). Для этой лаборатории кода мы пропустим этот шаг и вместо этого воспользуемся диалоговым потоком, который мы уже создали на предыдущем шаге с тестовым устройством из консоли разработчика Business Communications. Однако, если вы хотите узнать больше об этой функции API, ознакомьтесь с этим руководством .
Давайте начнем с добавления ответов RBM в намерение приветствия по умолчанию , чтобы Dialogflow мог использовать его с вашим агентом RBM. Сначала перейдите на вкладку браузера, на которой открыт Dialogflow. Щелкните ссылку « Намерения» в левой панели навигации. Удалите образец простого «Текстового ответа», щелкнув корзину в правом верхнем углу. Затем нажмите « Приветствие по умолчанию », прокрутите вниз до раздела « Ответы », нажмите « + » в списке типов ответов и выберите RCS Business Messaging (RBM) .
Нажмите «Добавить ответы » и выберите «Простой ответ ». В текстовом поле для простого ответа введите «Ознакомьтесь с предложением дня в Sean's Pizza Place! Купите любую 12-дюймовую пиццу и получите одну БЕСПЛАТНО!» (замените Шона своим именем), затем нажмите «Сохранить » .
Начало разговора
Теперь, когда у вас настроено приветственное намерение, вернитесь к своему тестовому устройству и отправьте сообщение «Привет». Это сообщение вызывает намерение приветствия по умолчанию , и вы должны увидеть что-то похожее на изображение ниже.
Обновите приветственное намерение
Теперь, когда у вас есть Dialogflow, отправляющий простое сообщение, давайте изменим его, чтобы сделать его более убедительным. Мы не только хотим отправить сообщение о сделке дня, но и отправить изображение, чтобы соблазнить принимающего пользователя и дать им некоторые другие действия, которые они могут пожелать предпринять.
Давайте заменим наше простое сообщение с рекламой пиццы на карточку, содержащую изображение и предлагающую варианты просмотра полного меню и веб-сайта ресторана.
В разделе « Ответы приветствия по умолчанию » выберите вкладку RCS Business Messaging (RBM) . Обновите существующий текст простого ответа на «Добро пожаловать в пиццерию Шона. Ознакомьтесь с сегодняшним рекламным предложением!». Затем нажмите «Добавить ответы » и выберите «Автономная расширенная карта » .
В форме Standalone Rich Card введите следующее:
- Название карты : Купите любую 12-дюймовую пиццу и получите одну БЕСПЛАТНО!
- Описание карты : Покажите это сообщение в любом месте, участвующем в акции, чтобы воспользоваться этим предложением. Предложение действует до 17 февраля.
- Выберите ориентацию карты : вертикальная
- URL-адрес изображения/видео : https://storage.googleapis.com/df-rbm-codelab/pizza-ad-coupon.png
- Выберите высоту носителя : средний
Нажмите « Добавить предложение» и введите следующее:
- Текст предложения : Меню просмотра
- Постбэк предложения : answer_view_menu
Добавьте действие «Открыть URL-адрес», нажав « Добавить предложение », а затем выбрав «Действие по открытию URL-адреса» в раскрывающемся списке и введя следующее:
- Текст предложения : Посмотреть веб-сайт
- Постбэк предложения : answer_view_website
- URL для открытия : https://www.google.com (или любой действительный URL)
Нажмите Сохранить .
Попробуйте!
Как только модель скажет «Обучение агента завершено», вернитесь к своему устройству и отправьте сообщение «Привет» своему агенту. Теперь вы должны увидеть Простой ответ , за которым следует Автономная расширенная карточка , которую вы только что создали.
Попробуйте нажать меню «Вид» . Обратите внимание, что срабатывает резервное намерение по умолчанию . Это связано с тем, что ваш агент Dialogflow не знает, как обрабатывать данные обратной передачи, которые вы настроили для этого предложения, «reply_view_menu».
Давайте исправим это.
Создание намерения вашего меню
Dialogflow использует намерения для классификации намерений пользователя. У намерений есть обучающие фразы, которые являются примерами того, что пользователь может сказать вашему агенту. Например, кто-то, желающий узнать меню, может спросить: «Какое у вас меню?», «Что я могу поесть?» или «Что я могу заказать?».
Все эти запросы уникальны, но имеют одну цель: получить информацию о меню.
Чтобы покрыть этот запрос, создайте намерение «Меню»:
- В левой навигационной панели нажмите + рядом с Intents .
- В поле Имя намерения введите «Меню».
В разделе « Тренировочные фразы » нажмите « Добавить выражение пользователя » и введите следующее, нажимая клавишу «Ввод» после каждого ввода:
-
What's your menu?
-
What can I eat?
-
What can I order?
-
reply_view_menu
Эта последняя обучающая фраза используется для сопоставления данных обратной передачи, которые вы настроили в предыдущем разделе с этой целью.
-
В ответ на это намерение мы создадим карусель, отображающую различные параметры меню. Для более крупного меню вы можете указать ссылку на веб-сайт или поделиться одним изображением меню.
- В разделе « Ответы » нажмите + и выберите RCS Business Messaging (RBM) .
- Нажмите «Добавить ответы» и выберите Carousel Rich Card .
- Установите для параметра « Выбрать ширину карты » значение « Средняя ».
- Под параметром ширины дважды нажмите « Добавить карту ». Это увеличивает количество карт до 4.
- В карточке 1 введите следующее:
- Название карты : Колбаса и пепперони
- Описание карты : Колбаса, пепперони, оливки и зеленый перец.
- URL-адрес изображения/видео : https://storage.googleapis.com/df-rbm-codelab/sausage-pizza.jpg
- В карточке 3 введите следующее:
- Название карты : итальянский
- Описание карты : Томатный соус, сыр и колбаса.
- URL-адрес изображения/видео : https://storage.googleapis.com/df-rbm-codelab/italian-pizza.jpg
- В карточке 2 введите следующее:
- Название карты : Маргарита
- Описание карты : помидоры Сан-Марцано, сыр моцарелла, свежий базилик, соль и оливковое масло первого отжима.
- URL-адрес изображения/видео : https://storage.googleapis.com/df-rbm-codelab/margarita-pizza.jpg
- В карточке 4 введите следующее:
- Название карты : Верховный
- Описание карты : колбаса, пепперони, гамбургер, канадский бекон, лук, оливки, грибы и зеленый перец.
- URL-адрес изображения/видео : https://storage.googleapis.com/df-rbm-codelab/supreme-pizza.jpg
После карточных элементов нам также нужно предоставить пользователю возможность продолжить разговор. Для этого нажмите « Добавить ответы », выберите « Простой ответ » и введите текст «Хотите сделать что-нибудь еще?».
В простом ответе нажмите « Добавить предложение » и введите следующее:
- Текст предложения : Посмотреть продвижение
- Постбэк предложения : привет
Нажмите Сохранить .
Попробуйте!
Теперь попробуйте попросить меню у своего агента. На вашем устройстве в разговоре с агентом RBM введите «Что в меню?» и отправьте сообщение своему агенту.
Теперь ваш агент правильно отвечает на запрос. Обратите внимание, что даже несмотря на то, что ваш запрос немного отличался от обучающей фразы («Что в меню?» по сравнению с «Какое у вас меню?»), Dialogflow все же сопоставил запрос с правильным намерением. Вы также можете попробовать нажать пункт меню «Вид » в расширенной карточке.
Dialogflow использует обучающие фразы в качестве примеров для модели машинного обучения, чтобы сопоставлять запросы пользователей с правильными намерениями. Модель машинного обучения проверяет соответствие запроса каждому намерению в агенте, каждому намерению присваивается оценка, и сопоставляется намерение с наивысшей оценкой. Если намерение с наивысшей оценкой имеет очень низкий балл, резервное намерение соответствует.
Захват намерений без ответа
Вы почти закончили, но нам нужно сделать еще одну вещь. Если вы вернетесь к своему тестовому устройству и коснетесь предложения « Просмотреть веб -сайт» в исходной расширенной карточке, вы заметите, что при нажатии на это предложение не только открывается соответствующий URL-адрес, но вы также получаете сообщение, вызванное резервным намерением по умолчанию .
Это связано с тем, что действие « Открыть URL -адрес» отправляет текст обратной передачи «reply_view_website» в Dialogflow, когда вы касаетесь действия, и Dialogflow сопоставляет это с резервным намерением по умолчанию .
Чтобы захватить данные постбэка без немедленного ответа на него, мы создадим интент с обучающими фразами, которые соответствуют данным постбека, и удалим все ответы на интент. Dialogflow сопоставит данные обратной передачи с намерением, но не ответит, потому что у намерения нет определенных ответов.
Создание намерения «Нет ответа»
Чтобы скрыть действия, которые вы хотите игнорировать, создайте намерение «Нет ответа»:
- В левой навигационной панели нажмите + рядом с Intents .
- В поле Имя намерения введите «Нет ответа».
- В разделе « Тренировочные фразы » нажмите « Добавить выражение пользователя » и введите следующее, нажимая клавишу «Ввод» после каждого ввода:
-
reply_view_website
-
- Прокрутите вниз до раздела « Ответы » и удалите все ответы с помощью значка корзины.
Нажмите Сохранить .
Попробуйте!
На вашем устройстве в беседе для вашего агента RBM введите «привет» и отправьте сообщение своему агенту. Это активирует рекламное предложение из приветственного намерения по умолчанию . Щелкните предложение «Просмотр веб-сайта» и убедитесь, что веб-сайт открывается в браузере, а ответ агента не отправляется.
Готово!
Продолжительность: 1:00
Хорошо сделано!
Вы прошли все этапы создания простого агента RBM на базе Dialogflow.
Если вы хотите узнать больше, ознакомьтесь с нашей расширенной лабораторией кода .
Получайте удовольствие от разработки для этой захватывающей новой платформы!