Esta página foi traduzida pela API Cloud Translation.
Switch to English

Gerenciar contextos

Na maioria dos casos, você configura contextos no momento do projeto (ao criar um agente). Por exemplo, quando você tem uma frase de treinamento como: "Gostaria de adicionar pizza ao meu carrinho de compras".

Em alguns cenários avançados, talvez você queira escrever um código que busque e defina alguns contextos no ambiente de execução (durante uma conversa ativa). Por exemplo, você detectou um local do dispositivo e o adicionou ao contexto, para que possa se referir ao local posteriormente.

Este documento descreve como conseguir e definir contextos no momento do projeto e no ambiente de execução usando o Console do Dialogflow, a API ou fulfillment.

Nomenclatura de contexto

As regras a seguir se aplicam a contextos de nomenclatura:

Regra Exemplos
Use nomes alfanuméricos. mycontext1
Use - ou _ em vez de espaços. my-context-1
Os nomes não diferenciam maiúsculas de minúsculas. Abc123 e abc123 são considerados equivalentes.
Ao usar a API, todos os nomes de contexto ficam em letras minúsculas. abc123

Definir contextos no momento do projeto

Console

  1. Acesse o Console do Dialogflow ES.
  2. Selecione um agente.
  3. Selecione Intents no menu da barra lateral à esquerda.
  4. Expanda a seção Contexts dos dados do intent.
  5. Clique no campo Add output context ou Add input context nos dados do intent.
  6. Insira um nome para o contexto e pressione Return.
  7. Para contextos de saída, clique no círculo de duração e altere-a. Snapshot da IU da duração
  8. Adicione mais contextos conforme necessário.
  9. Clique em Save.

API

Consulte a referência sobre intents.

Definir contextos no ambiente de execução

Fulfillment

Quando o serviço de webhook enviar um WebhookResponse, defina o outputContexts para os contextos ativos desejados.

API

A solicitação para uma chamada detectIntent do tipo Sessionstem um campo queryParameters.contexts, que é usado para definir contextos ativos.

Veja a seguir um exemplo de REST JSON de uma solicitação 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"
        }
      }]
  }
}

A qualquer momento, você também pode chamar os métodos create, delete e update no tipo Contexts.

Buscar contextos no ambiente de execução

Fulfillment

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

API

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

Veja a seguir um exemplo REST JSON 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",
  }
}

Também é possível chamar os métodos get e list no tipo Contexts a qualquer momento.