Definir ações (Dialogflow)

As ações são pontos de entrada no app que definem a invocação e a descoberta. para seu app. Você declara ações em um arquivo JSON conhecido como pacote de ações. e depois enviá-los ao seu projeto de desenvolvedor quando quiser testar ou enviar seu projeto do Actions para aprovação. Um pacote de ação é um arquivo JSON define as ações no seu projeto.

Para definir ações no seu pacote de ações, crie uma intent que defina como a ação é invocada e o endpoint de fulfillment correspondente para quando é acionada. É possível criar os seguintes tipos de ações:

  • Ação padrão:todo projeto do Actions precisa ter uma intent de boas-vindas que aja como ponto de entrada para os usuários iniciarem conversas. A intent de boas-vindas é acionada quando os usuários invocam explicitamente uma ação ao expressar o nome dela (por por exemplo: "Ok Google, falar com ExampleAction"). Essa intent de boas-vindas é identificada o nome da intent actions.intent.MAIN.
  • Outras ações para links diretos:você pode criar outras ações no seu pacote de ações com intents definidas por você. Isso permite que os usuários invocar uma funcionalidade específica dizendo o nome de uma ação junto com uma intent Por exemplo: "Ok Google, fale com ExampleAction para encontrar sapatos".

Consulte Intents e invocação para saber mais. esses modelos de invocação funcionam.

Definir uma ação padrão

Cada pacote de ações precisa ter apenas uma intent que processe o actions.intent.MAIN. Essa intent é acionada quando os usuários invocam Ação pelo nome (por exemplo, "Ok Google, falar com ExampleAction").

Para gerar um arquivo de pacote de ação padrão chamado action.json, pegue o etapas a seguir:

  1. Faça o download da CLI gactions.
  2. Crie um diretório local para os arquivos de origem do seu projeto do Action.
  3. Execute estes comandos no terminal:

    $ cd PROJECT_DIRECTORY
    $ gactions init

Depois que o arquivo do pacote de ações for gerado, substitua o conteúdo do marcador pelo seu e a distribuição dos valores dos dados. Confira um exemplo de action.json com mudanças para ExampleAction:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}

Definir ações adicionais

É possível fornecer ações adicionais que funcionam como pontos de entrada. Isso permite que os usuários sem ambiguidade da intenção, permitindo que especifiquem mais detalhes sobre o que fazer. Por exemplo, "Ok Google, fale com a ExampleAction para sapatos.").

Para definir outras ações:

  1. Na matriz actions, especifique uma ação para cada ponto de entrada.

    Por exemplo, o código a seguir mostra uma opção de "comprar" adicional Ação que define:
    • O nome de uma intent de com.example.ExampleAction.BUY
    • parameters para analisar a entrada do usuário quando essa intent for acionada. Isso é útil se você precisar de dados específicos da frase "Ação" quando os usuários invocam a ação.
    • queryPatterns, que definem o que os usuários precisam dizer para acionar a intent. Os padrões de consulta podem incluir tipos Schema.org que definem os parâmetros para análise.
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
          
  2. Especifique o fulfillment dessa intent especificando um conversationName que corresponde a um item no objeto conversations.

    {
      "conversations": {
        "ExampleAction": {
          "name": "ExampleAction",
          "url": "https://www.example.com/ExampleAction"
        }
      }
    }
        

Confira um exemplo de pacote completo de ações:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    },
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}