Проект Actions упаковывает все ваши Actions в один контейнер. Вы публикуете этот проект в Actions on Google, чтобы Google Assistant знал, как обнаружить и использовать ваш диалоговый опыт.
Для создания проекта Actions вы используете следующие низкоуровневые компоненты:
Настройки и ресурсы определяют метаданные и ресурсы проекта, такие как значки проектов. Google использует эту информацию для публикации ваших действий в каталоге Assistant, чтобы пользователи могли их находить и вызывать.
Намерения представляют собой задачу, которую необходимо выполнить, например некоторый пользовательский ввод или системное событие, требующее обработки. Самый распространенный тип намерений, который вы будете использовать, — это намерения пользователя. Эти намерения позволяют вам объявлять обучающие фразы, которые естественным образом расширяются механизмом NLU (понимание естественного языка) и включают в себя множество других похожих фраз. NLU использует агрегацию этих фраз для обучения языковой модели, которую Ассистент использует для соответствия вводу пользователя. Если во время разговора какой-либо ввод пользователя соответствует языковой модели намерения, среда выполнения Assistant отправляет намерение вашему действию, чтобы оно могло обработать его и ответить пользователю.
Типы позволяют извлекать структурированные данные из пользовательского ввода. Аннотируя обучающие фразы типами, NLU может извлекать для вас соответствующие структурированные данные, поэтому вам не придется анализировать открытые входные данные.
Сцены обрабатывают намерения и являются основными исполнителями логики ваших действий. Они могут заполнять слоты, оценивать условную логику, возвращать пользователю подсказки и даже вызывать внешние веб-сервисы для выполнения бизнес-логики. В сочетании с намерениями сцены дают вам мощный способ обнаружения конкретных действий пользователя или системных событий и реализации соответствующей логики.
Подсказки определяют статические или динамические ответы, которые вы используете для ответа пользователям.
Веб-перехватчики позволяют делегировать дополнительную работу веб-сервисам (выполнение), например проверку данных или создание подсказок. Ваши действия взаимодействуют с вашим выполнением через протокол веб-перехватчика на основе JSON.
Interactive Canvas позволяет создавать насыщенные и захватывающие возможности веб-приложений, использующих HTML, CSS и JavaScript.
Создать проект
Прежде чем приступить к разработке для Google Assistant, необходимо создать проект в консоли Actions. Чтобы создать проект:
- Перейдите в консоль действий .
- Нажмите Новый проект .
- Введите имя своего проекта и нажмите « Создать проект» .
- В разделе «Какое действие вы хотите построить?» экране выберите категорию, которая лучше всего представляет ваш проект, и нажмите «Далее» .
- На экране «Как вы хотите построить» выберите способ сборки и нажмите « Начать сборку» . Например, вы можете начать с пустого проекта или с образца.
Создайте локальный проект Actions SDK.
После создания проекта Actions в консоли Actions вы можете инициализировать проект в локальной среде разработки.
Чтобы инициализировать проект Actions SDK из существующего проекта Actions, выполните следующие действия:
- Создайте пустой каталог для проекта Actions в вашей локальной файловой системе.
- В этом пустом каталоге создайте каталог
sdk
. - Измените свой рабочий каталог на каталог
sdk
в вашем терминале.
Начните с пустого проекта
Если вы хотите начать с пустого проекта, который вы только что создали в консоли, запустите gactions pull --project-id <my-project-id>
.
$ mkdir myAction $ cd myAction $ mkdir sdk $ cd sdk $ gactions pull --project-id my-project-id Pulling your project files from Draft for a project id: "my-project-id" ✔ Done. You should see the files written in path/to/myAction/sdk
Начните с примера проекта
Если вы хотите начать с примера проекта, запустите gactions init <sample name>
.
$ mkdir actions-test $ cd actions-test $ mkdir sdk $ cd sdk $ gactions init question Writing sample files for question. ✔ Done. Please checkout the following documentation - https://developers.google.com/assistant/conversational/build on the next steps on how to get started.
Определите информацию о проекте
Настройки и ресурсы вашего проекта определяют информацию о вашем проекте, такую как поддержка функций и поверхностей, поддерживаемые локали, отображаемое имя, описание, логотипы и многое другое. В следующей таблице описаны основные настройки и ресурсы, которые вы предоставляете. Actions on Google использует эту информацию для развертывания и публикации вашего проекта в каталоге Assistant .
Имя | Описание |
---|---|
Информация каталога | Предоставляет информацию, позволяющую Actions on Google опубликовать ваш проект в каталоге Assistant. Включает метаданные и описания вашего проекта, а также ресурсы изображений для логотипов и изображений баннеров. |
Геотаргетинг | Настраивает локали, в которых доступны ваши действия. |
Возможности поверхности | Настраивает поверхности, на которых доступны ваши действия. |
Подробности о компании | Указывает контактную информацию вашей компании. |
Проверка бренда | Подключите принадлежащий вам веб-сайт или приложение Android, чтобы получить дополнительные преимущества, такие как зарезервированные имена вызовов и ссылки на веб-сайты в ваших действиях. |
Выпускать | Настраивает различные версии для тестирования и производства для вашего действия по тестированию и производству. |
Ссылки помощника | Разрешите пользователям вызывать ваши действия из ваших веб-ресурсов. |
Чтобы определить информацию о проекте:
Определите глобальные настройки для вашего проекта Actions в
sdk/settings/settings.yaml
. Поддерживаемые значения см. в справочной документации по настройкам .В следующем фрагменте показан пример файла
sdk/settings/settings.yaml
:accountLinking: enableAccountCreation: true linkingType: GOOGLE_SIGN_IN category: GAMES_AND_TRIVIA projectId: my-project-id ...
Определите параметры, которые могут различаться в зависимости от языкового стандарта пользователя (например, фразы вызова на разных языках) в файле
sdk/settings/<locale>/settings.yaml
, заменив языковой стандарт на целевой языковой стандарт.Поддерживаемые значения см. в справочной документации LocalizedSettings .
Следующий фрагмент представляет собой пример настроек английского языка, определенных в файле
sdk/settings/en/settings.yaml
:localizedSettings: developerEmail: developer@developers.com developerName: Developer Name displayName: My Display Name fullDescription: full description of the action largeBannerImage: https://path/to/large/banner privacyPolicyUrl: http://path/to/privacy/policy sampleInvocations: - Talk to My Display Name shortDescription: short description of the action smallLogoImage: https://path/to/small/logo voice: female_1 ...
Добавить ресурсы
Вы можете хранить такие ресурсы, как файлы изображений, аудиофайлы и строки, в своем проекте Actions и ссылаться на них из файлов конфигурации (например, определений подсказок или условий), используя определенную системой переменную $resources
.
Ресурсы проекта хранятся в resources/
, и каждому типу ресурсов назначается папка в каталоге.
Вы можете локализовать ресурсы, создав папки, специфичные для локали, в папке типа ресурса. Например, вы можете хранить испанские версии строк в resources/strings/es/<filename>.yaml
.
Изображения
Файлы изображений хранятся в resources/images/
, и вы можете ссылаться на них с помощью $resources.images.<name of the image file without file extension>
. Разрешенные расширения файлов:
-
gif
-
png
-
jpg
-
jpeg
Например, если английская версия маленького логотипа сохранена в resources/images/en/square.png
, а английская версия большого баннера сохранена в resources/images/en/landscape.jpg
соответственно, sdk/settings/en/settings.yaml
из предыдущего примера будет выглядеть так:
localizedSettings: developerEmail: developer@developers.com developerName: Developer Name displayName: My Display Name fullDescription: full description of the action largeBannerImage: $resources.images.landscape privacyPolicyUrl: http://path/to/privacy/policy sampleInvocations: - Talk to My Display Name shortDescription: short description of the action smallLogoImage: $resources.images.square voice: female_1 ...
Аудио файлы
Аудиофайлы хранятся в resources/audio/
, и вы можете ссылаться на них с помощью $resources.audio.<name of the audio file without file extension>
.
Разрешенные расширения файлов:
-
mp3
-
mpeg
Например, вы можете ссылаться на аудиозаписи из подсказок:
candidates: - first_simple: variants: - speech: your speech response content: media: mediaType: audio mediaObjects: - name: media name description: media description url: $resources.audio.intro
Струны
Строки хранятся в resources/strings/
как файлы .yaml
. Каждый файл содержит карту строковых ключей и связанных значений, которые могут быть отдельными строками или списками строк. Вы можете ссылаться на значения, используя $resources.strings.<name of the image file without file extension>.<key>
для однострочных значений или для получения случайного значения из списка и $resources.strings.<name of the image file without file extension>.<key>.<numerical index>
для определенного строкового значения в списке.
Например, используя строки ресурсов для локализации строк, sdk/settings/en/settings.yaml
из предыдущего примера может стать:
localizedSettings: developerEmail: developer@developers.com developerName: $resources.strings.appinfo.developerName displayName: $resources.strings.appinfo.displayName fullDescription: $resources.strings.appinfo.fullDescription largeBannerImage: $resources.images.landscape privacyPolicyUrl: $resources.strings.appinfo.privacyPolicyUrl sampleInvocations: - $resources.strings.invocations.sample shortDescription: $resources.strings.appinfo.shortDescription smallLogoImage: $resources.images.square voice: female_1 ...
Тестовые проекты в симуляторе
Консоль «Действия» предоставляет симулятор для предварительного просмотра ваших действий. Симулятор позволяет просматривать отладочную информацию, устанавливать возможности устройства, имитировать языковой стандарт и многое другое.
Чтобы протестировать проект:
- Запустите
gactions deploy preview
, чтобы развернуть действие для «предварительного просмотра» и включить тестирование в симуляторе. - Откройте URL-адрес в выводе команды, чтобы получить доступ к симулятору.
$ gactions deploy preview Deploying your project files to your Actions console preview for a project id: "my-project". This may take a few minutes. Sending configuration files Waiting for server to respond. ✔ Done. You can now navigate to the Actions Console simulator to test your changes: http://console.actions.google.com/project/my-project/simulator?disableAutoPreview