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, поэтому вы можете создать своего ассистента по моему мануалу и протестировать его возможности самостоятельно.

Спасибо за внимание!

Больше статей на нашем сайте:

0
2 комментария
Alexander Zhikh

Скажите, с помощью этого инструмента можно научить ассистента работать с программой которая не имеет поддержки ассистента?

Ответить
Развернуть ветку
BytePace
Автор

Спасибо за ваш вопрос!

Научить ассистента можно, если программа будет иметь API для управления через веб-сервер.

Для интеграции Google Assistant в программу имеются SDK для Go, Java (Android), C#, Node.js, Ruby. Подробнее об интеграции можно почитать здесь: https://developers.google.com/assistant/sdk/

Ответить
Развернуть ветку
-1 комментариев
Раскрывать всегда