Google Assistant: настройка кастомного ассистента
В 2018 году на конференции Google I/O представили ассистента - голосового помощника. Чуть позже был открыт доступ к консоли, где можно было создать своего собственного голосового ассистента, который мог выполнять команды, специфические для конкретного пользователя или группы пользователей. В этой статье Андрей Ващенко, Android-разработчик BytePace, расскажет подробнее как это сделать.
Возможности Google Assistant
Помимо всех возможностей стандартного Google Ассистента, кастомный ассистент может:
- распознавать в голосовой команде некоторые переменные, например: "выключи лампу номер 3"; цифра 3 является переменной, и значение этой переменной можно использовать в конкретных целях, о которых будет сказано ниже;
- отправлять запросы на сервер и обрабатывать ответы, а также получать ответы через веб-хуки, если операция требует длительного выполнения;
- распознавать разные типы переменных: числа, строки, даты, булеан (включить\выключить). Также любую операцию можно дополнить командой "ещё", например: "увеличь скорость вентилятора на 10 процентов" … "еще на 5" … "еще на 3";
- отвечать фразами, которые имеют один смысл, но звучат по-разному, например "Включи чайник в 12:30" -> "Хорошо", "Так точно", "Будет сделано" и т.п., и возможные ответы настраиваются разработчиком. Также распознавать синонимы, например: "Включи чайник в 12:30" и "Активируй чайник в 12:30". Данные слова также могут быть указаны разработчиком.
Кастомный ассистент регистрируется на Google почту. Система предусматривает публикацию бота в публичном и приватном режимах. Кастомный ассистент получает имя при создании, и вызвать его можно через стандартного Google ассистента, назвав ему имя вашего бота.
Как создать голосового помощника
Переходим в консоль Actions on Google: https://console.actions.google.com/
Создаем новый проект, даем название проекта (это не имя бота!), выбираем страну и язык:
Выберите сферу деятельности своего бота. Это важно для первоначальных настроек ассистента
Далее попадаем в основные настройки бота, где можно задать имя, по которому пользователь сможет его вызывать. Также там можно выбрать голос, задать цвет и аватарку, а также перейти к командам.
Настройка голосового помощника
Переходим к добавлению команд. Выбираем Custom intent.
После этого мы попадаем в консоль Dialogflow, которая открывает нам все возможности нашего бота.
Немного информации:
Intents - это функции, которые должен выполнять наш бот. Здесь задаются её аргументы (переменные), а также результат выполнения этой функции (ответ) и откуда этот ответ взять (ждать срабатывания хука или просто ответить фразой).
Entities - это словарь синонимов и терминов, актуальных для пользователя или группы пользователей. Используется для расширения словарного запаса бота и пользователей для общения с ботом.
Knowledge - это своеобразная база данных, где хранятся определенные документы, методички и т. п. Актуально для компаний или фирм, где имеется определенный регламент и правила работы. Их можно загрузить в эту базу, и бот сможет распознавать определенные куски (главы) из этих документов, и выводить их пользователю.
Fulfillment - модуль для настройки веб-хуков и связи с сервером. Всё, что связано с API вашего сервера, можно настроить здесь.
Integrations - внедрение вашего бота в наиболее популярные сервисы и мессенджеры, например Slack, WhatsApp, Skype, Telegram, Trello и т.п.
Training - тренировка бота, проверка качества работы и правильности выполнения операций, а также обучение каким-нибудь специфическим вещам.
History и Analytics - всё, что касается логирования, ведения статистики использования, статистики ошибок и статистики запросов, можно будет узнать в этих модулях.
Contexts - позволяет связывать несколько функций в цепочку. Указывается функция перед текущей и функция после текущей функции.
Events - позволяет заменять стандартные триггеры Google Ассистента на свои, например, приветствие.
Training phrases - голосовые команды, которые должны прозвучать, чтобы бот начал выполнение этой функции.
Actions and parameters - здесь задаются аргументы функции (переменные).
Responses - ответные фразы бота.
Fulfillment - настройка запроса или хука для выполнения функции на сервере.
Что сделал я? Я заменил стандартный приветственный интент на свой. В итоге получилось следующее:
Пока остановлюсь на этом, т. к. писать тестовый сервер особо нет времени. В целом я рассказал практически о всех возможностях Google Assistant, поэтому вы можете создать своего ассистента по моему мануалу и протестировать его возможности самостоятельно.
Спасибо за внимание!
Больше статей на нашем сайте:
Скажите, с помощью этого инструмента можно научить ассистента работать с программой которая не имеет поддержки ассистента?
Спасибо за ваш вопрос!
Научить ассистента можно, если программа будет иметь API для управления через веб-сервер.
Для интеграции Google Assistant в программу имеются SDK для Go, Java (Android), C#, Node.js, Ruby. Подробнее об интеграции можно почитать здесь: https://developers.google.com/assistant/sdk/