Google Assistant - инструкция по настройке

Идея данного проекта у меня возникла еще когда я смотрел конференцию Google I/O 2018, где большое внимание уделили Google Assistant.

Основная идея: компания Google внедрила в почти всю свою технику и сервисы голосового помощника (Ассистента). Чуть позже был открыт доступ к консоли, где можно было создать своего собственного голосового ассистента, который мог выполнять команды специфические для конкретного пользователя или группы пользователей. Это мог бы быть один из модулей Умного дома, и можно было бы голосом управлять бытовыми приборами, освещением и т. п. с любой точки мира, где есть доступ в Интернет. Или сейчас стало модным в IT-компаниях делать всевозможных ботов на готовой платформе (VKBotAPI, TelegramBotAPI), которые могут обучить новых сотрудников через текстовые запросы. Google сделали возможным создать точно такого же бота, только с голосовым управлением.
Ассистент выполнил команду о выключении света в гостиной
Возможности Google Assistant
Помимо всех возможностей стандартного Google Ассистента, кастомный ассистент может:
  • распознавать в голосовой команде некоторые переменные, например: "выключи лампу номер 3"; цифра 3 является переменной, и значение этой переменной можно использовать в конкретных целях, о которых будет сказано ниже;
  • отправлять запросы на сервер и обрабатывать ответы, а также получать ответы через веб-хуки, если операция требует длительного выполнения;
  • распознавать разные типы переменных: числа, строки, даты, булеан (включить\выключить). Также любую операцию можно дополнить командой "ещё", например: "увеличь скорость вентилятора на 10 процентов" … "еще на 5" … "еще на 3";
  • отвечать фразами, которые имеют один смысл, но звучат по-разному, например "Включи чайник в 12:30" -> "Хорошо", "Так точно", "Будет сделано" и т.п., и возможные ответы настраиваются разработчиком. Также распознавать синонимы, например: "Включи чайник в 12:30" и "Активируй чайник в 12:30". Данные слова также могут быть указаны разработчиком.
Кастомный ассистент регистрируется на Google почту. Система предусматривает публикацию бота в публичном и приватном режимах. Кастомный ассистент получает имя при создании, и вызвать его можно через стандартного Google ассистента, назвав ему имя вашего бота.
Как создать голосового помощника
1) Переходим в консоль Actions on Google: https://console.actions.google.com/
2) Создаем новый проект, даем название проекта (это не имя бота!), выбираем страну и язык
3) Выберите сферу деятельности своего бота. Это важно для первоначальных настроек ассистента
4) Далее попадаем в основные настройки бота, где можно задать имя, по которому пользователь сможет его вызывать. Также там можно выбрать голос, задать цвет и аватарку, а также перейти к командам.
Настройка голосового помощника
Переходим к добавлению команд. Выбираем 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, поэтому вы можете создать своего ассистента по моему мануалу и протестировать его возможности самостоятельно.
Спасибо за внимание!