Создание проектов

Проект Actions упаковывает все ваши Actions в один контейнер. Вы публикуете этот проект в Actions on Google, чтобы Google Assistant знал, как обнаружить и использовать ваш диалоговый опыт.

компоненты проекта действий
Рисунок 1 . Структура проекта действий

Для создания проекта Actions вы используете следующие низкоуровневые компоненты:

  • Настройки и ресурсы определяют метаданные и ресурсы проекта, такие как значки проектов. Google использует эту информацию для публикации ваших действий в каталоге Assistant, чтобы пользователи могли их находить и вызывать.

  • Намерения представляют собой задачу, которую необходимо выполнить, например некоторый пользовательский ввод или системное событие, требующее обработки. Самый распространенный тип намерений, который вы будете использовать, — это намерения пользователя. Эти намерения позволяют вам объявлять обучающие фразы, которые естественным образом расширяются механизмом NLU (понимание естественного языка) и включают в себя множество других похожих фраз. NLU использует агрегацию этих фраз для обучения языковой модели, которую Ассистент использует для соответствия вводу пользователя. Если во время разговора какой-либо ввод пользователя соответствует языковой модели намерения, среда выполнения Assistant отправляет намерение вашему действию, чтобы оно могло обработать его и ответить пользователю.

  • Типы позволяют извлекать структурированные данные из пользовательского ввода. Аннотируя обучающие фразы типами, NLU может извлекать для вас соответствующие структурированные данные, поэтому вам не придется анализировать открытые входные данные.

  • Сцены обрабатывают намерения и являются основными исполнителями логики ваших действий. Они могут заполнять слоты, оценивать условную логику, возвращать пользователю подсказки и даже вызывать внешние веб-сервисы для выполнения бизнес-логики. В сочетании с намерениями сцены дают вам мощный способ обнаружения конкретных действий пользователя или системных событий и реализации соответствующей логики.

  • Подсказки определяют статические или динамические ответы, которые вы используете для ответа пользователям.

  • Веб-перехватчики позволяют делегировать дополнительную работу веб-сервисам (выполнение), например проверку данных или создание подсказок. Ваши действия взаимодействуют с вашим выполнением через протокол веб-перехватчика на основе JSON.

  • Interactive Canvas позволяет создавать насыщенные и захватывающие возможности веб-приложений, использующих HTML, CSS и JavaScript.

Создать проект

Прежде чем приступить к разработке для Google Assistant, необходимо создать проект в консоли Actions. Чтобы создать проект:

  1. Перейдите в консоль действий .
  2. Нажмите Новый проект .
  3. Введите имя своего проекта и нажмите « Создать проект» .
  4. В разделе «Какое действие вы хотите построить?» экране выберите категорию, которая лучше всего представляет ваш проект, и нажмите «Далее» .
  5. На экране «Как вы хотите построить» выберите способ сборки и нажмите « Начать сборку» . Например, вы можете начать с пустого проекта или с образца.

Создайте локальный проект Actions SDK.

После создания проекта Actions в консоли Actions вы можете инициализировать проект в локальной среде разработки.

Чтобы инициализировать проект Actions SDK из существующего проекта Actions, выполните следующие действия:

  1. Создайте пустой каталог для проекта Actions в вашей локальной файловой системе.
  2. В этом пустом каталоге создайте каталог sdk .
  3. Измените свой рабочий каталог на каталог 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, чтобы получить дополнительные преимущества, такие как зарезервированные имена вызовов и ссылки на веб-сайты в ваших действиях.
Выпускать Настраивает различные версии для тестирования и производства для вашего действия по тестированию и производству.
Ссылки помощника Разрешите пользователям вызывать ваши действия из ваших веб-ресурсов.

Чтобы определить информацию о проекте:

  1. Определите глобальные настройки для вашего проекта Actions в sdk/settings/settings.yaml . Поддерживаемые значения см. в справочной документации по настройкам .

    В следующем фрагменте показан пример файла sdk/settings/settings.yaml :

    accountLinking:
      enableAccountCreation: true
      linkingType: GOOGLE_SIGN_IN
    category: GAMES_AND_TRIVIA
    projectId: my-project-id
    ...
    

  2. Определите параметры, которые могут различаться в зависимости от языкового стандарта пользователя (например, фразы вызова на разных языках) в файле 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
...

Тестовые проекты в симуляторе

Консоль «Действия» предоставляет симулятор для предварительного просмотра ваших действий. Симулятор позволяет просматривать отладочную информацию, устанавливать возможности устройства, имитировать языковой стандарт и многое другое.

Рисунок 3. Основные области симулятора: (1) пользовательский ввод, (2) просмотр устройства, (3) параметры и настройки и (4) журнал разговоров.

Чтобы протестировать проект:

  1. Запустите gactions deploy preview , чтобы развернуть действие для «предварительного просмотра» и включить тестирование в симуляторе.
  2. Откройте 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