Это вторая часть серии о создании кроссплатформенных голосовых приложений с помощью Voxa.
В предыдущей статье я кратко объяснил, что вы можете делать с Voxa, инструментом voxa-cli и голосовым приложением, которое мы собираемся создать в конце этой серии.
В этой статье мы собираемся создать Alexa Skills и Google Actions в ваших аккаунтах. Мы собираемся создать электронные таблицы, которые будут управлять частью VUI (голосового интерфейса пользователя) приложения.
Это очень полезно, когда вы работаете в команде, а другие могут сотрудничать, чтобы улучшить ваш VUI. Итак, приступим!
Прежде всего, нам нужно создать проект с помощью voxa-cli. Вы можете найти пакет npm здесь. Откройте окно терминала на компьютере и введите:
npm i -g voxa-cli
Эта команда установит последнюю версию voxa-cli локально. Когда команда завершится, вы можете ввести:
voxa create
Это поможет вам шаг за шагом настроить ваш проект с некоторыми опциями:
Вам будет предложено указать название вашего приложения, имя разработчика, платформы и язык программирования (JavaScript или TypeScript). Некоторые из последних вопросов связаны с электронными таблицами: модель взаимодействия, публикация информации и функция canFulfill
.
Мы также собираемся интегрировать наше приложение с аналитикой DynamoDB и Dashbot, поэтому обязательно ответьте Да на эти вопросы.
Теперь, когда наш базовый код создан, давайте проверим его! Вы можете ввести в свой терминал:
cd quick-maths; code .
Это оставит текущую папку в корне вашего проекта и откроет ее с помощью Visual Studio Code.
Запустите npm install
или yarn install
, чтобы создать папку node_modules
. В нашем случае мы будем использовать yarn
.
В папку src/app
мы обычно добавляем логику приложения. Мы собираемся поработать с этой папкой в следующей статье.
Файл src/app/index.js
- это отправная точка приложения. Как мы объясняли в части 1, Voxa - это среда MVC, поэтому мы рассмотрим эти ключевые части в следующих файлах:
- Модель: файл
src/app/model.js
. В каждом запросе к вашему проекту у вас будет доступ к переменнойmodel
, где вы можете вызывать все функции и получать доступ к переменным модели. - Просмотры: файл
src/app/views.json
. Если вы используете voxa-cli, этот путь изменится наsrc/languageResources
, где инструмент загрузитVIEWS
из электронной таблицы модели взаимодействия, включая все языковые стандарты. Если вы определяете переменные для динамического содержимого, вы можете определить эти переменные в файлеsrc/app/variables.js
. Значения этих переменных будут взяты из модели (файлmodel.js
). - Контроллеры: папка
src/app/states
. Вы можете определить все обработчики намерений и состояний с помощью функцийvoxaApp.onIntent
иvoxaApp.onState
.
Я буду отправлять свои изменения в этот репозиторий в разных ветках: part2, part3, part4 и part5:
В папке src/config
вы определяете различные среды своего приложения.
Voxa-cli добавляет два файла среды: производственный и промежуточный. Вы можете определить среду, с которой хотите работать, задав для переменной среды NODE_ENV
промежуточную, рабочую или желаемую среду.
Voxa-cli также позволяет загружать намерения, высказывания и просмотры из электронной таблицы.
Существует также еще одна электронная таблица, в которой вы можете определить всю информацию метаданных для ваших навыков Alexa: название навыка, разрешения, интерфейсы, описания, ключевые слова для изображений (URL) и т. Д.
Для этого приложения я уже подготовил две общедоступные таблицы, и вы можете скопировать их на свой Google Диск.
Следуйте этому, чтобы получить доступ к электронной таблице публикации информации.
В таблице с информацией о публикации вы найдете три важные вкладки:
SKILL_GENERAL_INFORMATION
: Определите всю общую информацию о метаданных для вашего навыка Alexa.SKILL_ENVIRONMENTS_INFORMATION
: Определите конечные точки для Alexa и Dialogflow.SKILL_LOCALE_INFORMATION@en-US
: Определите информацию для конкретного региона, такую как изображения, описания, ключевые слова или примеры фраз. Вы также можете создать другие вкладки для других языков, вам просто нужно изменить суффикс языкового стандарта, например:@en-GB
,@de-DE
,@es-ES
или@it-IT
.
Откройте таблицу модели взаимодействия.
В таблице модели взаимодействия вы найдете четыре важных вкладки:
INTENT
: Определите все намерения с их слотами и типами. Также есть столбец для определения событий Dialogflow, напримерGOOGLE_ASSISTANT_WELCOME
илиactions_intent_CANCEL
. Вы также можете добавить намерения, специфичные для той или иной платформы, установить, будет ли намерениеstartIntent
(Dialogflow) или может автоматически использоватьCanFulfillIntent
интерфейс (Alexa).UTTERANCES_MAIN
: Определите все высказывания для каждого намерения, которое вы определили на вкладкеINTENT
.VIEWS_FILE@en
: Определите все ответы своего голосового приложения. Вы можете определить другие языковые стандарты, как на вкладкеSKILL_LOCALE_INFORMATION
в электронной таблице с информацией о публикации:@de
,@it
,@es
,@ru-RU
и т. Д.INVOCATION_NAMES
: Определите имена вызовов для каждой вашей среды. В нашем случае мы установили быстрые математические вычисления для производственной среды и быстрые математические вычисления для промежуточных.
Теперь нам нужно изменить файл interaction.json
, указав URL-адреса электронных таблиц. Взгляните на эту суть, чтобы увидеть, как должен выглядеть ваш файл:
Чтобы скачать эти ресурсы, нам понадобится ключ от Google Cloud. Вы можете проверить репозиторий GitHub и следовать инструкциям по созданию проекта Google Cloud.
Когда вы загрузите ключевой файл, скопируйте его в корневую папку вашего голосового проекта и назовите его client_secret.json
. Теперь вы можете запустить:
yarn interaction
Это загрузит ваши высказывания и ответы. Вы увидите три новые папки:
/src/content
: Другой контент, загруженный с помощью voxa-cli. Например,{environment}-canfulfill-intents.json
файлы./src/languageResources
: просмотры загружены из электронной таблицы./speech-assets
: Модель взаимодействия для Alexa и Dialogflow.
Вы можете дважды проверить прогресс проекта в этой ветке репозитория, который я использую для отправки своих изменений, следуя пошаговым инструкциям.
Пришло время создать в ваших учетных записях Навыки и Действия. Перейдите в Консоль разработчика Amazon и создайте навык под названием Quick Maths. И в Консоли действий создайте действие Quick Maths.
Для Alexa перейдите на вкладку Сборка и в меню JSON Editor скопируйте /speech-assets/alexa/en-US/{environment}-interaction.json
содержимое файла, в зависимости от среды, которую вы хотите. настроить в первую очередь.
Если вы настроили ASK CLI, вы можете запустить эту команду:
ask api update-model -s {SKILL_ID} -f speech-assets/alexa/en-US/production-interaction.json -l en-US
Чтобы обновить метаданные навыков, вы можете запустить
ask api update-skill -s {SKILL_ID} -f speech-assets/alexa/production-manifest.json
Для Dialogflow перейдите в меню Действия, нажмите кнопку СТРОИТЬ и перейдите в консоль Dialogflow.
Вы можете заархивировать содержимое пути /speech-assets/dialogflow/{environment}/
и загрузить его в Dialogflow. Перейдите к кнопке настройки ⚙️ и щелкните вкладку Экспорт и импорт.
Нажмите кнопку ВОССТАНОВИТЬ ИЗ ZIP и перетащите zip-файл из своего проекта. Наконец, перейдите в меню Интеграции, нажмите кнопку Google Assistant и нажмите кнопку ТЕСТ.
Связь с аккаунтом Alexa
Начнем с Алексы. Перейдите на портал разработчика, в правом верхнем углу страницы есть кнопка с инициалами имени вашей учетной записи, нажмите на нее, а затем выберите Настройки.
В этом сообщении из блога Alexa вы увидите подробные пошаговые инструкции о том, как создать LoginWithAmazon
конфигурацию для связывания аккаунтов.
Перейдите к конфигурации вашего навыка в консоли портала разработчика. В меню СВЯЗЬ УЧЕТНОЙ ЗАПИСИ включите Связывание учетной записи и вставьте следующие значения:
Authorization URI: https://www.amazon.com/ap/oa Access Token URI: https://api.amazon.com/auth/o2/token ClientID: from LoginWithAmazon ClientSecret: from LoginWithAmazon Client Authentication Scheme: HTTP Basic Scopes: profile, postal_code Domain list: amazon.com, na.account.amazon.com
Вход в Google
Перейдите к конфигурации вашего действия в консоли действий. В меню Связывание учетной записи выполните следующие действия:
- Создание учетной записи: выберите Да, разрешите пользователям регистрировать новые учетные записи с помощью голоса.
- Тип связи: Google Sign In.
Нажмите Сохранить.
Финал
Выполнив эти два шага, мы завершили интеграцию привязки учетных записей для наших голосовых приложений. В следующей статье мы создадим логику игры и соревнования.
Спасибо за прочтение! Обязательно ознакомьтесь со следующими статьями.