Projetos de build

Um projeto do Actions agrupa todas as ações em um único contêiner. Você publica esse projeto no Actions on Google para que o Google Assistente saiba como descobrir e invocar suas experiências de conversa.

componentes do projeto de ações
Figura 1. Estrutura do projeto de ações

Use os seguintes componentes de baixo nível para criar seu projeto do Actions:

  • Configurações e recursos definem os metadados e recursos do projeto, como ícones. O Google usa essas informações para publicar suas ações no diretório do Assistente, para que os usuários possam descobrir e invocá-las.

  • Intents representam uma tarefa a ser realizada, como alguma entrada do usuário ou um evento do sistema que precisa de processamento. O tipo mais comum de intent que você vai usar são as intents do usuário. Essas intents permitem declarar frases de treinamento que são naturalmente expandidas pelo mecanismo de processamento de linguagem natural (PLN) para incluir muitas outras frases semelhantes. A PLN usa a agregação dessas frases para treinar um modelo de linguagem que o Google Assistente usa para corresponder à entrada do usuário. Durante uma conversa, se alguma entrada do usuário corresponder ao modelo de linguagem da intent, o ambiente de execução do Google Assistente enviará a intent à sua ação para que ela possa processá-la e responder ao usuário.

  • Com os tipos, é possível extrair dados estruturados da entrada do usuário. Ao anotar frases de treinamento com tipos, o PLN pode extrair dados estruturados relevantes para você. Assim, não é preciso analisar a entrada aberta.

  • Scenes processa intents e são os principais executores de lógica das suas ações. Eles podem fazer o preenchimento de slots, avaliar a lógica condicional, retornar solicitações ao usuário e até mesmo chamar serviços externos da Web para realizar a lógica de negócios. Em combinação com intents, as cenas oferecem uma maneira eficiente de detectar eventos específicos de entrada do usuário ou do sistema e realizar a lógica correspondente.

  • As solicitações definem as respostas estáticas ou dinâmicas que você usa para responder aos usuários.

  • Com os Webhooks, é possível delegar trabalho extra a serviços da Web (fulfillment), como validação de dados ou geração de comandos. Suas ações se comunicam com o fulfillment por um protocolo de webhook baseado em JSON.

  • A tela interativa permite criar experiências avançadas e imersivas com apps da Web que usam HTML, CSS e JavaScript.

Criar um projeto

Você precisa criar um projeto no Console do Actions antes de desenvolver para o Google Assistente. Para criar um projeto:

  1. Acesse o Console do Actions.
  2. Clique em Novo projeto.
  3. Digite um nome e clique em Criar projeto.
  4. Na tela Que tipo de ação você quer criar?, selecione uma categoria que melhor represente seu projeto e clique em Próximo.
  5. Na tela Como você quer criar o build, selecione uma maneira de criar e clique em Começar a criar. Por exemplo, comece com um projeto vazio ou com uma amostra.

Criar um projeto local do SDK do Actions

Depois de criar um projeto do Actions no Console do Actions, você pode inicializá-lo no seu ambiente de desenvolvimento local.

Para inicializar um projeto do SDK do Actions em um projeto atual, siga estas etapas:

  1. Crie um diretório vazio para o projeto do Actions no sistema de arquivos local.
  2. Neste diretório vazio, crie um diretório sdk.
  3. Altere o diretório de trabalho para o diretório sdk no terminal.

Começar com um projeto vazio

Se quiser começar do projeto vazio que você acabou de criar no console, execute 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

Começar com um projeto de exemplo

Se você quiser começar com um projeto de exemplo, execute 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.

Definir as informações do projeto

As configurações e os recursos do seu projeto definem informações sobre ele, como suporte a recursos e plataformas, localidades aceitas, nome de exibição, descrição, logotipos e muito mais. A tabela a seguir descreve as principais configurações e recursos que você oferece. O Actions on Google usa essas informações para implantar e publicar seu projeto no diretório do Google Assistente.

Nome Descrição
Informações do diretório Fornece informações para que o Actions on Google possa publicar seu projeto no diretório do Assistente. Inclui metadados e descrições sobre seu projeto e recursos de imagem para logotipos e imagens de banner.
Segmentação por local Configura as localidades em que suas ações estão disponíveis.
Recursos de superfície Configura as plataformas em que suas ações estão disponíveis.
Detalhes da empresa Especifica os dados de contato da sua empresa.
Verificação de marca Conecte um site ou app Android de sua propriedade para ter outros benefícios, como nomes de invocação reservados e links de sites nas suas ações.
Versão Configura diferentes versões de teste e produção da ação para teste e produção.
Links do Assistente Permita que os usuários invoquem ações nas suas propriedades da Web.

Para definir as informações do projeto:

  1. Defina as configurações globais para o projeto do Actions em sdk/settings/settings.yaml. Consulte os valores compatíveis na documentação de referência Configurações.

    O snippet a seguir mostra um exemplo de arquivo sdk/settings/settings.yaml:

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

  2. Defina configurações que podem variar de acordo com a localidade do usuário (por exemplo, frases de invocação em idiomas diferentes) em um arquivo sdk/settings/<locale>/settings.yaml, substituindo locale pela localidade de destino.

    Consulte a documentação de referência de LocalizedSettings para ver os valores compatíveis.

    O snippet abaixo é um exemplo para configurações em inglês definidas em um arquivo 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
    ...
    

Adicionar recursos

É possível armazenar recursos como arquivos de imagem, arquivos de áudio e strings no projeto do Actions e referenciá-los nos arquivos de configuração (por exemplo, definições ou condições de prompt) usando a variável $resources definida pelo sistema.

Os recursos do projeto são armazenados em resources/, e cada tipo de recurso recebe uma pasta no diretório.

Você pode localizar recursos criando pastas específicas de localidade na pasta de tipo de recurso. Por exemplo, você pode armazenar versões em espanhol das strings em resources/strings/es/<filename>.yaml.

Imagens

Os arquivos de imagem são armazenados em resources/images/ e podem ser referenciados com $resources.images.<name of the image file without file extension>. As extensões de arquivo permitidas são:

  • gif
  • png
  • jpg
  • jpeg

Por exemplo, se a versão em inglês do logotipo pequeno for salva em resources/images/en/square.png e a versão em inglês do banner grande for salva em resources/images/en/landscape.jpg, respectivamente, sdk/settings/en/settings.yaml do exemplo anterior seria:

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
...

Arquivos de áudio

Os arquivos de áudio são armazenados em resources/audio/ e podem ser referenciados com $resources.audio.<name of the audio file without file extension>.

As extensões de arquivo permitidas são:

  • mp3
  • mpeg

Por exemplo, é possível consultar gravações de áudio dos comandos:

candidates:
  - first_simple:
      variants:
        - speech: your speech response
    content:
      media:
        mediaType: audio
        mediaObjects:
          - name: media name
            description: media description
            url: $resources.audio.intro

Strings

As strings são armazenadas em resources/strings/ como arquivos .yaml. Cada arquivo contém um mapa de chaves de string e valores associados, que podem ser strings únicas ou listas de strings. É possível fazer referência aos valores usando $resources.strings.<name of the image file without file extension>.<key> para valores de string única ou receber um valor aleatório de uma lista, e $resources.strings.<name of the image file without file extension>.<key>.<numerical index> para um valor de string específico dentro de uma lista.

Por exemplo, ao usar strings de recurso para localização de strings, o sdk/settings/en/settings.yaml do exemplo anterior pode se tornar:

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
...

Testar projetos no simulador

O Console do Actions tem um simulador para você conferir uma prévia das suas ações. O simulador permite ver informações de depuração, definir recursos do dispositivo, simular localidade e muito mais.

Figura 3. As principais áreas do simulador: (1) entrada do usuário, (2) visualização do dispositivo, (3) opções e configurações e (4) registro de conversas.

Para testar um projeto:

  1. Execute gactions deploy preview para implantar a ação na visualização e ativar o teste no simulador.
  2. Abra o URL na resposta ao comando para acessar o simulador.
$ 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