Как подружить клиентов с «Алисой» от «Яндекса»: опыт Just AI и Papa John's

Иван Голубев
Иван Голубев

Руководитель проектов Just AI

Расскажите друзьям
Полина Константинова

Заказ пиццы – хрестоматийный пример для разработки чат-ботов. На первый взгляд, это предсказуемый и понятный, как пицца Маргарита, сценарий. Но на деле все гораздо занятнее, особенно если за этим сценарием скрываются технологии обработки естественного языка и проектирование разговорного интерфейса. Иван Голубев, руководитель проектов Just AI, делится опытом создания одного из первых голосовых бизнес-навыков в «Алисе» от «Яндекса» – заказа пиццы в «Папа Джонс».

«Папа Джонс» – одна из самых технологичных компаний в сфере доставки еды: она была первой, кто обучил искусственный интеллект оценивать пиццу и внедрил Apple Pay, в числе первых они ввели биометрическую оплату. Пиццерия давно сотрудничает с «Яндексом»: команда «Папа Джонс» участвовала в бета-тестированиях рекламы в приложениях «Яндекс.Метро» и «Яндекс.Навигатор», технологии для распознавания речи «Яндекс.SpeechKit Cloud». Поэтому «Яндекс» и обратился к «Папа Джонс» с предложением стать одной из первых сторонних компаний, которые интегрируют «Алису» в свой бизнес. А мы взялись эту миссию осуществить.


Не ищем легких путей

Для вывода в голосовой канал «Папа Джонс» выбрали именно заказ пиццы. На старте проекта у компании уже был бот в Телеграме, который умел оформлять заказ. И изначально нашей задачей было реализовать то же самое для «Алисы».

Адаптировать телеграм-бота под нее «как есть» было несложно, но сразу стало ясно, что это плохой вариант.

Люди пишут совсем не так, как говорят, к тому же в Телеграме есть набор инструментов, которых пока нет в «Алисе»: автоматическое определение телефона и геолокации пользователя, обновление содержимого текущего ответа, инлайн-кнопки (те, что всплывают прямо в чате). В «Алисе» эти функции тоже можно было добавить, но обходными путями.

Мы решили не искать лазейки, а запросили у «Папа Джонс» анонимизированные данные бесед клиентов с операторами, получили доступ к API каталога и системы заказов и стали делать специальный навык для «Алисы» с учетом особенностей разговорного интерфейса.


«Алиса», говори человеческим языком

Технология NLU (natural language understanding), понимание естественного языка, является нашей специализацией. Без нее бот не будет понимать характерные для устной речи и насыщенные информацией фразы вроде: «Хочу одну большую “Маргариту” на тонком тесте, два “Мясных удовольствия”, греческий салат и пару яблочных соков». Зато если научить умного ассистента правильно интерпретировать такие запросы, он сможет оформить заказ очень быстро.

Изучив меню пиццерии, наши лингвисты-разработчики создали небольшую онтологию понятий, разбили ключевые понятия на классы «блюдо», «количество», «пицца», «салат», «название пиццы», «тип теста», «размер» и определили взаимосвязи между ними. Для каждого класса мы привели множество примеров, чтобы «обучить» навык тому, что газировку «Пепси. Дикая вишня» пользователи будут называть совершенно по-разному, в том числе коверкая слова. Например, вот так: Пепси Дикая Вишня, Pepsi Дикая Вишня, вишневая пепси, пепси с вишней, вишневый пепси, вишневую пепси, пепси вишня, пепси вишни, вишневый пепси, вишневого пепси, дикая вишня.

Небольшой ассортимент пиццерии позволил тщательно проработать данные, на которых происходит «обучение» навыка, и достаточно полно описать каждую предметную область, чтобы он мог понимать формулировки со сложной структурой и извлекать из них параметры заказа – что заказываем, в каком количестве, на каком тесте пицца и так далее.

Когда в меню 200 позиций, автоматизировать заказ проще – чем меньше вариантов, тем ниже неопределенность. Если же у вас в каталоге товаров десятки тысяч наименований, то и ваш навык должен понимать десятки тысяч названий, каждое из которых может быть неправильно названо, услышано и так далее.

Получив заказ, «Алиса» находит знакомые параметры и подбирает наиболее подходящие позиции в каталоге «Папа Джонс». А если чего-то не понимает, то задает уточняющие вопросы собеседнику, действуя по сценарию «form-filling» (как когда вы заполняете поля при заказе авиабилета) для наполнения корзины и данных о доставке.


«Алиса», следуй сценарию

Сценарий общения интеллектуального ассистента с пользователем в нашей платформе выглядит как некая иерархия состояний и вариантов переходов между ними. Состояния – это этапы диалога, что-то вроде экранов, если проводить аналогию с разработкой приложений: то, на какой стадии сейчас разговор бота и собеседника (например, пора ли вам уже выбрать пиццу или время назвать свой адрес).

Таким видит пользователь сценарий заказа пиццы через «Папа Джонс» 

И для каждого такого состояния лингвисты-разработчики на специальном Just AI DSL определяют примеры фраз или событий, по которым бот сможет классифицировать запрос. Например, вы спросите «В какое время можете доставить пиццу?». Но для бота это то же самое, что и «Когда ближайшая доставка?» или «Когда мне привезут?», ведь все это примеры одного и того же состояния – намерения узнать время доставки.

Кроме того, в сценарии нужно прописывать логику действий бота при выполнении той или иной задачи (делается это в JavaScript).

Так, на вопрос «Можно привезти мне пиццу в Рейкьявик» навык в «Алисе» сразу ответит отказом – ведь эта локация в базе данных «Папа Джонс» просто отсутствует. А вот чтобы сформировать ответ на вопрос «Когда вы доставите мои десять пицц на Ленинградский вокзал?», направляется запрос в API «Папа Джонс» – здесь ответ заранее предусмотреть нельзя. Пиццерия по API возвращает свой ответ в систему (это происходит быстро и незаметно для пользователя). Но задача лингвиста – прописать в JavaScript инструкцию для бота, чтобы он мог этот ответ интерпретировать, достать из него нужные значения и в понятном виде направить пользователю.


«Алиса», оставайся собой

Составленный лингвистами-разработчиками сценарий можно запустить в любых каналах: Телеграм, «Алиса», чат-виджет на сайте, телефонный канал и тому подобное. Но каждый из них имеет свой интерфейс. В «Алисе» он разговорный (CUI, character user interface или символьный интерфейс пользователя). Повторить логику телеграм-бота, расширив ее возможностями NLU, мало, а воспроизвести графический интерфейс мобильного приложения в «Алисе» не получится. Сравните:

Поэтому мы провели серию брейнштормов, проанализировали данные телефонных разговоров с операторами пиццерии и переработали сценарий навыка под разговорный интерфейс. Но как до выпуска навыка в продакшн убедиться, что пользователям «Алисы» будет понятно, как сделать или изменить заказ, что ее реплики не будут раздражать их, что учтены все возможные варианты формулировок?

Ответы на эти вопросы можно получить, проведя UX-тестирование. Конечно, мы испытывали навык и на себе, но любой айтишник понимает особенности разговорного интерфейса и знает, как «Алиса» реагирует на собеседника. В UX-тестах участвуют реальные пользователи, они не знают, как «правильно» пользоваться ассистентами, и ведут себя естественно.

Им ставится широко сформулированная задача: вот вам голосовой помощник «Алиса», закажите пиццу. И пока они общаются с ней, за ними наблюдают специалисты и делают пометки (в «Яндексе» для этого есть специальная комната со стеклом, наподобие тех, что можно увидеть в детективах).

После анализа навыка «Папа Джонс» в UX-лаборатории «Яндекса» мы существенно переосмыслили сценарий. Основные замечания пользователей касались длины и однообразности реплик; непонимания определенных формулировок дат и других параметров заказа; возможности повторного использования данных из предыдущих заказов (например, адреса); порядка уточняющих вопросов.

Так выглядит сценарий выбора пиццы внутри технологической платформы Just AI

Некоторые выводы, которые родились после работы над замечаниями, я собрал в концепцию легкого диалога (и даже составил из них мнемоническую аббревиатуру). Итак, хороший диалог для голосового навыка всегда:

  • Личностный

Общение с навыком должно быть персонализированным. Голосовой помощник, как правило, имеет определенный образ, характер. Например, «Алиса» создана «Яндексом» умной, начитанной, спокойной, она может иронизировать, любит шутить, но не допускает панибратства. И если при разработке навыка для нее игнорировать ее стиль общения и писать для него сухие безликие фразы, это очевидный проигрыш.

  • Естественный

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

  • Гибкий

Нужно учить бота понимать разные формулировки запросов, учитывать вероятные ошибки распознавания речи. Навык должен быть готов к тому, что пользователь может внезапно отказаться от заказа, выдать информацию в нелогичной последовательности или сказать все за одну реплику. Как, например, во фразе «Привезите мне вечером домой две Маргариты» одновременно упоминаются и место, и время, и пицца.

  • Контекстный

Формируя ответ, голосовой помощник учитывает доступную сейчас и полученную от пользователя ранее информацию – от его мобильного устройства до времени суток в данной локации. Он должен называть собеседника по имени, не спрашивать то, что уже спрашивал и не относиться к опытному любителю пиццы как к какому-то новичку.

  • Инициативный

Пользователь ни за что не должен оказаться в ситуации, когда ему непонятно, что дальше делать. Есть простой прием, которым мы проверяем диалоги. Он звучит так: «И че?». Если произошла ошибка и ассистент говорит: «Я тебя не понимаю», но ничего не предлагает, не вовлекает собеседника в продолжение диалога, пользователь скажет «И че?» и будет прав. Нужно отслеживать «тупики» в диалоге, направлять пользователя с помощью вопросов или подсказок.

  • Краткий

На сайтах часто встречаются слишком длинные описания товаров, но по ним вы хотя бы можете пробежать глазами. А если их будут зачитывать голосом? На экране смартфона даже два предложения становятся длинным текстом. Если у голосового ассистента есть экран, часть информации для краткости можно и не озвучивать.

***

Весь процесс создания и тестирования навыка занял три месяца плотной работы. А 29 мая Кристофер Уинн, президент «Папа Джонс» в России, выступил на конференции Yet Another Conference, где рассказал о будущем пиццы и продемонстрировал работу готового навыка в «Алисе».

Спустя три месяца «Папа Джонс» находится в списке самых популярных бизнес-навыков платформы «Яндекс.Диалоги» и принимает заказы пользователей «Алисы» в десятках городов России. А когда 10 июля «Яндекс» выпустил на рынок свою умную колонку, мы начали работать над адаптацией навыка «Папа Джонс» под «Яндекс.Станцию» – у нее нет экрана, где «Алиса» могла бы показывать фотографии пиццы или дублировать диалог в письменном виде, так что сценарий общения будет отличаться.

Денис Жидков, директор по разработке программного обеспечения и проектному управлению компании «Папа Джонс» в России, СНГ и Центральной Европе

Когда «Яндекс» предложил нам создать бизнес-навык для «Алисы», мы, конечно, согласились: для нас важно быть там, где наши клиенты, а это интернет. 75% заказов по сети «Папа Джонс» сегодня – онлайн-заказы, и мы ожидаем, что эта цифра вместе с популярностью сегмента доставки будет расти. А голосовой помощник – еще один способ для клиентов «Папа Джонс» делать заказ в интернете, наряду с сайтом и мобильным приложением. И это очень удобный способ, который, как мы видим, нравится пользователям.

Над выбором разработчика для интеграции нашего API с «Алисой» мы долго не думали: «Яндекс» порекомендовал обратиться к Just AI, у которых был большой опыт в создании чат-ботов и технологий распознавания речи.

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

Также для нас было важно, чтобы подрядчик не просто интегрировал наш API, а понимал, как люди заказывают пиццу и что они ожидают получить. Благодаря специалистам Just AI, которые погрузились в вопрос и применили свой опыт в технологиях распознавания речи, получилось создать действительно естественную, близкую к «живой» механику диалога.

«Алиса» принимает заказы во всех ресторанах сети с 1 июня. Пожалуй, можно выделить две аудитории заказчиков: первые – это постоянные клиенты «Папа Джонс», которые теперь стали заказывать через нее, и вторые – аудитория самого «Яндекса». Она, как известно, большая, так что мы очень довольны результатами. Планируем, что они еще улучшатся вместе с развитием «Алисы», когда у нее появятся новые возможности – в первую очередь оплата банковской картой.

Материалы по теме:


Актуальные материалы — в Telegram-канале @Rusbase

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter


Комментарии

Зарегистрируйтесь, чтобы оставлять комментарии и получить доступ к Pipeline — социальной сети, соединяющей стартапы и инвесторов.
OpenTalks.AI
14 февраля 2019
Ещё события


Telegram канал @rusbase