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 ottenga e imposti alcuni contesti in fase di esecuzione (durante una conversazione in tempo reale). Un esempio potrebbe essere il rilevamento della posizione di un dispositivo e l'hai aggiunto al contesto, così potrai fare riferimento alla località in un secondo momento.
Questo documento descrive come ottenere e impostare i contesti in fase di progettazione e di esecuzione utilizzando la console Dialogflow, l'API o il completamento.
Denominazione dei contesti
Ai contesti di denominazione si applicano le seguenti regole:
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 si utilizza l'API, tutti i nomi di contesto sono in minuscolo. | abc123 |
Definisci i contesti in fase di progettazione
Console
- Vai alla console di Dialogflow ES.
- Seleziona un agente.
- Seleziona Intenti nel menu della barra laterale a sinistra.
- Espandi la sezione Contesti dei dati sull'intenzione.
- Fai clic sul campo Aggiungi contesto di output o Aggiungi contesto di input nei dati sull'intenzione.
- Inserisci un nome per il contesto e premi Invio.
- Per i contesti di output, facoltativamente fai clic sul cerchio della durata e modifica la durata.
- Aggiungi altri contesti in base alle esigenze.
- Fai clic su Salva.
API
Consulta le Riferimento agli intent.
Impostare i contesti in fase di runtime
Fulfillment
Quando il servizio webhook invia un
WebhookResponse
,
imposta il campo outputContexts
sui contesti attivi desiderati.
API
La richiesta di una chiamata di tipo detectIntent
Sessions
contiene un campo queryParameters.contexts
,
che viene utilizzato per impostare i contesti attivi.
Di seguito è riportato un esempio di JSON REST di una richiesta 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" } }] } }
In qualsiasi momento,
puoi anche chiamare i metodi create, delete e update sul
tipo
Contexts
.
Ottenere i contesti in fase di esecuzione
Fulfillment
Quando il servizio webhook riceve
WebhookRequest
,
il campo queryResult.outputContexts
contiene i contesti attivi.
API
La risposta a un
Sessions
la chiamata detectIntent
di tipo contiene
campo queryResult.outputContexts
,
che fornisce l'elenco dei contesti attivi.
Di seguito è riportato un esempio di risposta JSON REST di 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", } }
In qualsiasi momento,
puoi anche chiamare i metodi get e list
Contexts
di testo.