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
- Aceda à consola do Dialogflow ES.
- Selecione um agente.
- Selecione Intenções no menu da barra lateral esquerda.
- Expanda a secção Contextos dos dados de intenção.
- Clique no campo Adicionar contexto de saída ou Adicionar contexto de entrada nos dados de intenção.
- Introduza um nome para o contexto e prima Return.
- Para contextos de saída, opcionalmente, clique no círculo de duração e altere a duração.

- Adicione mais contextos conforme necessário.
- 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.