Nella maggior parte dei casi, i contesti vengono configurati in fase di progettazione (quando crei un agente). Ad esempio, quando hai una frase di addestramento come: "Vorrei aggiungere la pizza al mio carrello degli acquisti".
In alcuni scenari avanzati, potresti anche voler scrivere codice che recupera e imposta alcuni contesti in fase di runtime (durante una conversazione live). Ad esempio, potresti aver rilevato la posizione di un dispositivo e l'hai aggiunta al contesto, in modo da potervi fare riferimento in un secondo momento.
Questo documento descrive come recuperare e impostare i contesti in fase di progettazione e di runtime utilizzando la console Dialogflow, l'API, o il fulfillment.
Denominazione dei contesti
Le seguenti regole si applicano alla denominazione dei contesti:
| Regola | Esempi |
|---|---|
| Utilizza nomi alfanumerici. | mycontext1 |
Utilizza - o _ anziché spazi. |
my-context-1 |
| I nomi non sono sensibili alle maiuscole. | Abc123 e abc123 sono considerati equivalenti. |
| Quando utilizzi l'API, tutti i nomi dei contesti sono in minuscolo. | abc123 |
Impostare i contesti in fase di progettazione
Console
- Vai alla console Dialogflow ES.
- Seleziona un agente.
- Seleziona Intent nel menu della barra laterale a sinistra.
- Espandi la sezione Contesti dei dati dell'intent.
- Fai clic sul campo Aggiungi contesto di output o Aggiungi contesto di input nei dati dell'intent.
- Inserisci un nome per il contesto e premi Invio.
- Per i contesti di output, fai clic sul cerchio della durata e, se vuoi, modificala.

- Aggiungi altri contesti, se necessario.
- Fai clic su Salva.
API
Consulta il riferimento agli intent.
Impostare i contesti in fase di runtime
Fulfillment
Quando il tuo servizio webhook invia a
WebhookResponse,
imposta il outputContexts campo sui contesti attivi desiderati.
API
La richiesta di una
Sessions
tipo detectIntent chiamata contiene un campo queryParameters.contexts,
utilizzato per impostare i contesti attivi.
Di seguito è riportato un esempio di richiesta detectIntent in formato JSON REST:
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"
}
}]
}
}
In qualsiasi momento,
puoi anche chiamare i metodi create, delete e update sul
Contexts
tipo.
Recuperare i contesti in fase di runtime
Fulfillment
Quando il tuo servizio webhook riceve a
WebhookRequest,
il campo queryResult.outputContexts contiene i contesti attivi.
API
La risposta a una
Sessions
di tipo detectIntent contiene un
queryResult.outputContexts campo,
che fornisce l'elenco dei contesti attivi.
Di seguito è riportato un esempio di risposta detectIntent in formato JSON REST:
{
"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",
}
}
In qualsiasi momento,
puoi anche chiamare i metodi get e list sul
Contexts
tipo.