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

Случаи использования
Диалоговые действия лучше всего подходят для простых случаев использования, которые дополняют другой опыт. Хорошие разговорные действия часто попадают в следующие общие категории:
- Вещи, на которые люди могут легко ответить. Действия, которые можно выполнить с помощью знакомых входных данных, таких как время или даты, например бронирование рейса.
- Быстрые, но чрезвычайно полезные действия. Обычно они дают пользователям немедленную выгоду за очень короткое время, например, они узнают, когда их любимая спортивная команда сыграет в следующий раз.
- Действия, которые по своей сути лучше подходят для голоса. Как правило, это то, что вы хотите делать без помощи рук, например, получать тренировки во время йоги или легких упражнений.
Как работают диалоговые действия
В отличие от традиционных мобильных и настольных приложений, в которых используются парадигмы, ориентированные на компьютер, пользователи взаимодействуют с Actions for the Assistant посредством естественно звучащего диалога. Диалоговые действия начинаются при вызове пользователем и продолжаются до тех пор, пока пользователь не решит выйти (используя заранее определенные фразы) или ваше диалоговое действие не означает конец беседы.
Во время разговора пользовательский ввод преобразуется помощником из речи в текст и преобразуется в запросы JSON для обработки естественного языка. Эти запросы отправляются на то, что известно как выполнение вашего разговора .
Выполнение вашего разговора анализирует запрос пользователя в структурированные данные, обрабатывает эти данные и возвращает ответ веб-перехватчика JSON помощнику. Затем Помощник обрабатывает и представляет ваш ответ пользователю.

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

Построение разговорного действия
Большая часть построения вашего разговорного действия — это планирование беседы и обеспечение ее выполнения. Думайте о беседе как о пользовательском интерфейсе для вашего диалогового действия. Вам нужно подумать о том, как пользователи вызывают ваш проект Actions, что они могут сказать в беседе и как ваш проект Actions реагирует на них.
В своем проекте Actions вы предоставляете метаданные для публикации проекта и указываете способ выполнения разговора. Разработчики, использующие Dialogflow, связывают свой агент Dialogflow с проектом, а затем реализуют выполнение через Dialogflow. Для разработчиков, использующих SDK Actions, построение диалога включает в себя кодирование и развертывание в формате диалогового веб-перехватчика .
При разработке вашего разговора мы рекомендуем использовать наши процессы и принципы дизайна . Диалоговые интерфейсы все еще являются относительно новой технологией, и изучение передового опыта может сэкономить вам время в будущем.
Выполнение с использованием Dialogflow
При интеграции с агентом Dialogflow агент обрабатывает NLU для пользовательских запросов в вашем диалоговом действии. На этом шаге ваш агент Dialogflow делает для вас следующее:
- Анализирует каждый входящий запрос от Ассистента на основе введенных вами обучающих фраз и контекста разговора.
- Сопоставляет каждый запрос намерению Dialogflow (также известному как событие).
- Извлекает параметры в сущности Dialogflow.
Затем ваш агент Dialogflow может вызвать собственное выполнение (развернутое как веб-перехватчик) для выполнения некоторой логики, например вызова REST API или другой серверной службы, которая генерирует ответ для возврата к помощнику. Этот веб-перехватчик также известен как выполнение Dialogflow и использует формат веб-перехватчика Dialogflow .

Построение выполнения диалога при использовании Dialogflow в основном состоит из разработки веб-перехватчика выполнения Dialogflow. В документации Actions on Google вы найдете ресурсы, которые помогут вам спроектировать, создать и протестировать веб-перехватчик выполнения Dialogflow. В частности, эти ресурсы включают клиентскую библиотеку Node.js и клиентскую библиотеку Java .
При создании с помощью Dialogflow вы будете использовать консоль Dialogflow для создания намерений, сущностей и обучающих фраз Dialogflow.
Более общую информацию о Dialogflow вы можете прочитать об интеграции Actions on Google в документации Dialogflow .
Выполнение с использованием Actions SDK
Выполнение диалога с помощью SDK действий в основном состоит из создания и развертывания пакета действий. Пакеты действий создаются в формате ActionPackage
и используют формат веб-перехватчика диалога . Пакет действий содержит все действия для данного проекта действий.
Помощник предоставляет пользовательские запросы для выполнения вашего разговора с помощью действий в намерениях Google. Для каждого намерения ваш веб-перехватчик выполнения должен анализировать намерение, обрабатывать его и возвращать ответ JSON помощнику для пользователя.
Ответы
Когда вы создаете действие для помощника, вы разрабатываете свои разговоры для различных поверхностей, таких как голосовой разговор для динамиков, активируемых голосом, или визуальный разговор на поверхности, которую поддерживает помощник. Этот подход позволяет пользователям быстро выполнять задачи с помощью голосовых или визуальных возможностей.
По мере того, как вы создаете свое удовлетворение, вы можете выбирать из множества привлекательных типов ответов, которые Ассистент будет представлять пользователям. Они варьируются от пузырей чата, содержащих простой текст, до ответов СМИ, каруселей и даже HTML с использованием интерактивного холста .
Следующие шаги
Следуйте лабораторной программе по созданию действий для Google Assistant (уровень 1) , чтобы получить подробные пошаговые инструкции, чтобы приступить к созданию своего первого разговорного действия.
Затем вы можете перейти к нашим руководствам по созданию собственного диалога с помощью Dialogflow или с помощью Actions SDK . Вы также можете изучить эти дополнительные ресурсы для создания разговорных действий:
- Действия в репозитории Google GitHub : пример кода и библиотеки.
- r/GoogleAssistantDev : официальное сообщество Reddit для разработчиков, работающих с Google Assistant.