Faça a gestão dos contextos

Na maioria dos casos, configura os contextos no momento da conceção (quando está a criar um agente). Por exemplo, quando tem uma expressão de treino como: "Quero adicionar pizza ao meu carrinho de compras."

Em alguns cenários avançados, também pode querer escrever código que obtenha e defina alguns contextos em tempo de execução (durante uma conversa em direto). Um exemplo pode ser ter detetado a localização de um dispositivo e tê-la adicionado ao contexto, para poder consultar a localização num momento posterior.

Este documento descreve como obter e definir contextos no momento da conceção e no tempo de execução através da consola do Dialogflow, da API ou do processamento.

Nomenclatura de contexto

Aplicam-se as seguintes regras aos contextos de nomenclatura:

Regra Exemplos
Use nomes alfanuméricos. mycontext1
Use - ou _ em vez de espaços. my-context-1
Os nomes não são sensíveis a maiúsculas e minúsculas. Abc123 e abc123 são considerados equivalentes.
Todos os nomes de contexto estão em minúsculas quando usa a API. abc123

Defina contextos no momento da conceção

Consola

  1. Aceda à consola do Dialogflow ES.
  2. Selecione um agente.
  3. Selecione Intenções no menu da barra lateral esquerda.
  4. Expanda a secção Contextos dos dados de intenção.
  5. Clique no campo Adicionar contexto de saída ou Adicionar contexto de entrada nos dados de intenção.
  6. Introduza um nome para o contexto e prima Return.
  7. Para contextos de saída, opcionalmente, clique no círculo de duração e altere a duração. Resumo da IU do tempo de vida
  8. Adicione mais contextos conforme necessário.
  9. Clique em Guardar.

API

Consulte a referência de intenções.

Defina contextos no tempo de execução

Fulfillment

Quando o seu serviço de webhook envia um WebhookResponse, defina o campo outputContexts para os contextos ativos pretendidos.

API

O pedido de uma chamada do tipo Sessions detectIntent contém um campo queryParameters.contexts, que é usado para definir contextos ativos.

Segue-se um exemplo de JSON REST de um pedido detectIntent:

POST https://dialogflow.googleapis.com/v2/{session=projects/*/agent/sessions/*}:detectIntent

{
  "queryInput": {
    "text": {
      "languageCode": "en-US",
      "text": "I would like to add pizza to my shopping cart."
    }
  },
  "queryParams": {
    "contexts": [{
        "name": "projects/project-id/agent/sessions/session-id/contexts/product-chosen",
        "lifespanCount": 5,
        "parameters": {
          "product": "Pizza",
          "device-location" "@52.3377871,4.8698096,17z"
        }
      }]
  }
}

Em qualquer altura, também pode chamar os métodos de criação, eliminação e atualização no tipo Contexts.

Obtenha contextos no tempo de execução

Fulfillment

Quando o seu serviço de webhook recebe um WebhookRequest, o campo queryResult.outputContexts contém os contextos ativos.

API

A resposta a uma chamada do tipo Sessions contém um campo queryResult.outputContexts, que fornece a lista de contextos ativos.detectIntent

Segue-se um exemplo de JSON REST de uma resposta detectIntent:

{
  "responseId": "response-id",
  "queryResult": {
    "queryText": "I would like to add pizza to my shopping cart.",
    "parameters": {
      "product": "pizza"
    },
    "allRequiredParamsPresent": true,
    "fulfillmentText": "The product has been added.",
    "fulfillmentMessages": [
      {
        "text": {
          "text": [
            "The product has been added."
          ]
        }
      }
    ],
    "outputContexts": [
      {
        "name": "projects/project-id/agent/sessions/session-id/contexts/product-chosen",
        "lifespanCount": 5,
        "parameters": {
          "product": "Pizza",
          "device-location" "@52.3377871,4.8698096,17z"
        }
      }
    ],
    "intent": {
      "name": "projects/project-id/agent/intents/intent-id",
      "displayName": "buy-product"
    },
    "intentDetectionConfidence": 0.8057143,
    "languageCode": "en",
  }
}

Em qualquer altura, também pode chamar os métodos get e list no tipo Contexts.