Диалоговые действия расширяют функциональность Google Assistant, позволяя разработчикам создавать собственные впечатления или разговоры для пользователей Assistant. В ходе разговора ваше действие «Разговор» обрабатывает запросы Ассистента и возвращает ответы со звуковыми и визуальными компонентами. Диалоговые действия также могут подключаться к внешним службам для добавления диалоговой или бизнес-логики перед возвратом ответа.
Например, пользователи могут вызвать ваше диалоговое действие, чтобы получить ответ от вашей внешней службы выполнения, когда они хотят найти информацию, получить персональную рекомендацию или выполнить транзакции, связанные с цифровыми платежами.
![В ходе двусторонней беседы с Google Assistant пользователь спрашивает и получает ответ о том, когда происходит сеанс конференции.](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/home-conversation-io.png?authuser=5&hl=ru)
Случаи использования
Диалоговые действия лучше всего подходят для простых случаев использования, которые дополняют другой опыт. Хорошие разговорные действия часто делятся на следующие общие категории:
- На что люди могут легко ответить. Действия, которые можно выполнить, используя знакомые данные, например время или дату, например бронирование рейса.
- Быстрые, но чрезвычайно полезные действия. Обычно это дает пользователям немедленную выгоду за очень мало времени, например, возможность узнать, когда в следующий раз сыграет их любимая спортивная команда.
- Действия, которые по своей сути лучше подходят для голоса. Обычно это вещи, которые вы хотите делать без помощи рук, например, занятия йогой или легкие упражнения.
Как работают диалоговые действия
В отличие от традиционных мобильных и настольных приложений, в которых используются компьютерно-ориентированные парадигмы, пользователи взаимодействуют с Действиями для Ассистента посредством естественного диалога. Действия разговора начинаются при вызове пользователем и продолжаются до тех пор, пока пользователь не решит выйти (используя заранее определенные фразы) или пока ваше действие разговора не будет обозначать конец разговора.
Во время разговора Помощник преобразует вводимые пользователем данные из речи в текст и преобразует их в запросы JSON для обработки естественного языка. Эти запросы отправляются на так называемое выполнение вашего разговора .
Выполнение вашего разговора анализирует запрос пользователя в структурированные данные, обрабатывает эти данные и возвращает ответ JSON веб-перехватчика Помощнику. Затем Ассистент обрабатывает и представляет ваш ответ пользователю.
![Выполнение разговора может быть представлено вводом запроса JSON и выводом ответа JSON веб-перехватчика.](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/conversation-fulfillment-json-in-out.png?authuser=5&hl=ru)
Создание собственной службы обработки естественного языка может оказаться непростой задачей, поэтому мы предоставляем Dialogflow, чтобы справиться с этой задачей за вас. Для разработчиков, которые не могут использовать Dialogflow, мы также предоставляем Actions SDK в качестве запасного варианта с отдельным, но связанным путем разработки.
После того, как вы настроите агента в Dialogflow, выполнение вашего разговора будет дополнено функциями Dialogflow, включая возможность использовать выполнение Dialogflow. Этот подход позволяет вам изолировать выполнение разговора от других услуг, которые могут вам понадобиться, чтобы предоставить пользователям желаемый результат.
![Действия в Google анализируют высказывания пользователя и отправляют запрос в Dialogflow. Dialogflow соответствует намерению и извлекает параметры для отправки соответствующему выполнению Dialogflow. Затем выполнение отправляет ответ обратно в Actions on Google, который отображает ответ на поверхности Ассистента.](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/aog-user-query-to-fulfillment.png?authuser=5&hl=ru)
Построение разговорного действия
Большая часть построения вашего разговорного действия — это планирование разговора и обеспечение его удовлетворения. Думайте о разговоре как о пользовательском интерфейсе вашего разговорного действия. Вам нужно подумать о том, как пользователи вызывают ваш проект Actions, какие правильные вещи они могут сказать в разговоре и как ваш проект Actions на них реагирует.
В своем проекте Actions вы предоставляете метаданные для публикации проекта и указываете способ выполнения разговора. Разработчики, использующие Dialogflow, связывают свой агент Dialogflow с проектом, а затем обеспечивают реализацию через Dialogflow. Для разработчиков, использующих Actions SDK, построение выполнения диалога включает в себя кодирование и развертывание в формате веб-перехватчика диалога .
При разработке беседы мы рекомендуем использовать наши процессы и принципы проектирования . Диалоговые интерфейсы по-прежнему являются относительно новой технологией, и изучение лучших практик может сэкономить вам время в будущем.
Выполнение с использованием Dialogflow
При интеграции с агентом Dialogflow агент обрабатывает NLU для пользовательских запросов в вашем диалоговом действии. На этом этапе ваш агент Dialogflow сделает за вас следующее:
- Анализирует каждый входящий запрос от Ассистента на основе предоставленных вами обучающих фраз и контекста разговора.
- Сопоставляет каждый запрос с намерением Dialogflow (также известным как событие).
- Извлекает параметры в объекты Dialogflow.
Затем ваш агент Dialogflow может вызвать собственное выполнение (развернутое как веб-перехватчик) для выполнения некоторой логики, например вызова REST API или другой серверной службы, которая генерирует ответ для возврата в Помощник. Этот веб-перехватчик также известен как выполнение Dialogflow и использует формат веб-перехватчика Dialogflow .
![Dialogflow принимает высказывание пользователя для сопоставления намерений и предоставляет извлеченные параметры для выполнения Dialogflow. Выполнение возвращает ответ пользователю.](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/dialogflow-parse-query.png?authuser=5&hl=ru)
Обеспечение выполнения разговора при использовании Dialogflow в первую очередь заключается в разработке веб-перехватчика выполнения Dialogflow. В документации Actions on Google вы найдете ресурсы, которые помогут вам спроектировать, создать и протестировать веб-перехватчик выполнения Dialogflow. В частности, эти ресурсы включают клиентскую библиотеку Node.js и клиентскую библиотеку Java .
При создании с помощью Dialogflow вы будете использовать консоль Dialogflow для создания намерений, сущностей и обучающих фраз Dialogflow.
Более общую информацию о Dialogflow вы можете прочитать об интеграции Actions on Google в документации Dialogflow .
Выполнение с использованием Actions SDK
Обеспечение выполнения диалога с помощью Actions SDK в первую очередь состоит из создания и развертывания пакета действий. Пакеты действий создаются в формате ActionPackage
и используют формат веб-перехватчика диалога . Пакет действий содержит все действия для данного проекта действий.
Ассистент отправляет запросы пользователей для выполнения вашего разговора с помощью действий в целях Google. Для каждого намерения вебхук выполнения должен проанализировать намерение, обработать его и вернуть ответ JSON Помощнику для пользователя.
Ответы
Когда вы создаете действие для Ассистента, вы проектируете свои разговоры для различных поверхностей, например голосовой разговор для динамиков с голосовым управлением или визуальный разговор на поверхности, которую поддерживает Помощник. Такой подход позволяет пользователям быстро выполнять задачи с помощью голосовых или визуальных возможностей.
По мере того, как вы формируете свое удовлетворение, вы можете выбирать из множества привлекательных типов ответов, которые Ассистент будет предлагать пользователям. Они варьируются от всплывающих окон чата, содержащих простой текст, до ответов СМИ, каруселей и даже HTML с использованием Interactive Canvas .
Следующие шаги
Следуйте инструкциям по созданию кода для Google Assistant (уровень 1) , чтобы получить подробные пошаговые инструкции, чтобы начать создание своего первого диалогового действия.
Затем вы можете перейти к нашим руководствам по созданию собственного диалога с помощью Dialogflow или Actions SDK . Вы также можете изучить эти дополнительные ресурсы для создания диалоговых действий:
- Действия в репозитории Google GitHub : пример кода и библиотек.
- r/GoogleAssistantDev : официальное сообщество Reddit для разработчиков, работающих с Google Assistant.