Ad ogni svolta della conversazione, avviene un'interazione. Durante un'interazione, un utente finale invia un input a Dialogflow e Dialogflow invia una risposta. Quando implementi il sistema per gestire le interazioni, hai due opzioni: l'API o un'integrazione.
Quando utilizzi l'API, il tuo sistema deve gestire quanto segue:
- Crea un agente.
- Offri un'interfaccia utente agli utenti finali.
- Richiama l'API Dialogflow a ogni turno della conversazione per inviare l'input utente finale.
- A meno che le risposte dell'agente non siano puramente statiche (non comuni), devi ospitare un servizio webhook per gestire il fulfillment abilitato per webhook.
Quando utilizzi un'integrazione, il sistema deve gestire solo quanto segue:
- Crea un agente.
- Facoltativamente, implementa un servizio webhook.
Il seguente diagramma mostra i passaggi che si svolgono in un turno conversazionale di una sessione.
- L'utente finale digita o pronuncia qualcosa, noto come input dell'utente finale.
- L'interfaccia utente o il sistema di integrazione riceve l'input e lo inoltra all'API Dialogflow in una richiesta di rilevamento dell'intent.
- L'API Dialogflow riceve la richiesta di rilevamento dell'intent. Corrisponde all'input con un intent o parametro modulo, imposta i parametri in base alle esigenze e aggiorna lo stato della sessione. Se deve chiamare un fulfillment abilitato per webhook, invia una richiesta di webhook al servizio webhook. In caso contrario, vai al passaggio 6.
- Il tuo servizio webhook riceve la richiesta. Il servizio esegue le azioni necessarie, come chiamare le API esterne, eseguire query o aggiornare un database e così via.
- Il servizio webhook crea una risposta e invia una risposta webhook a Dialogflow.
- Dialogflow crea una risposta di rilevamento dell'intento. Se un webhook è stato chiamato, utilizza la risposta fornita nella risposta webhook. Se non è stato chiamato alcun webhook, utilizza la risposta statica definita nell'agente. Dialogflow invia una risposta di rilevamento dell'intent all'interfaccia utente o al sistema di integrazione.
- L'interfaccia utente o il sistema di integrazione riceve la risposta di rilevamento dell'intento e inoltra la risposta audio o testuale all'utente finale.
- L'utente finale vede o sente la risposta.
Scopo della guida
Questa guida mostra come chiamare l'API per un turno conversazionale per un agente che non utilizza un'integrazione (passaggio 2 del diagramma sopra). Questa guida non mostra come implementare un'interfaccia utente per l'utente finale.
Prima di iniziare
Prima di leggere questa guida, segui questi passaggi:
- Leggi le nozioni di base di Dialogflow CX.
- Esegui la procedura di configurazione.
- Crea un nuovo agente o continua a utilizzare l'agente creato in Crea un agente.
Raccogli ID
Gli esempi riportati di seguito richiedono diversi ID come input. Per trovare l'ID progetto, l'ID regione e l'ID agente:
- Apri la console Dialogflow CX.
- Seleziona il tuo progetto Google Cloud per aprire il selettore dell'agente.
- Fai clic sul menu opzioni more_vert di un agente nell'elenco.
- Fai clic sul pulsante per copiare il nome filter_none.
- Verrà copiato il nome completo che identifica l'agente, che comprende l'ID progetto, l'ID regione e l'ID agente nel formato:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
È necessario anche un ID sessione.
Una sessione rappresenta una conversazione tra un agente Dialogflow e un utente finale.
Puoi creare un ID sessione univoco all'inizio di una conversazione
e utilizzarlo a ogni turno della conversazione.
Per provare l'API, puoi utilizzare qualsiasi ID stringa di massimo 36 byte, ad esempio test-session-123
.
Intento di rilevamento chiamata
Gli esempi riportati di seguito chiamano il metodo Sessions.detectIntent
.
Seleziona un protocollo e una versione per il riferimento sessione:
Protocollo | V3 | V3beta1 |
---|---|---|
REST | Risorsa sessione | Risorsa sessione |
RPC | Interfaccia sessione | Interfaccia sessione |
C++ | SessionsClient | Non disponibile |
C# | SessionsClient | Non disponibile |
Go | SessionsClient | Non disponibile |
Java | SessionsClient | SessionsClient |
Node.js | SessionsClient | SessionsClient |
PHP | Non disponibile | Non disponibile |
Python | SessionsClient | SessionsClient |
Ruby | Non disponibile | Non disponibile |
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- AGENT_ID: il tuo ID agente
- REGION_ID: il tuo ID regione
- SESSION_ID: il tuo ID sessione
- END_USER_INPUT: l'input utente finale
Metodo HTTP e URL:
POST https://REGION_ID-dialogflow.googleapis.com/v3/projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID/sessions/SESSION_ID:detectIntent
Corpo JSON della richiesta:
{ "queryInput": { "text": { "text": "END_USER_INPUT" }, "languageCode": "en" }, "queryParams": { "timeZone": "America/Los_Angeles" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "responseId": "38e8f23d-eed2-445e-a3e7-149b242dd669", "queryResult": { "text": "I want to buy a shirt", "languageCode": "en", "responseMessages": [ { "text": { "text": [ "Ok, let's start a new order." ] } }, { "text": { "text": [ "I'd like to collect a bit more information from you." ] } }, { "text": { "text": [ "What color would you like?" ] } }, {} ], "currentPage": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/flows/00000000-0000-0000-0000-000000000000/pages/ce0b88c4-9292-455c-9c59-ec153dad94cc", "displayName": "New Order" }, "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "intentDetectionConfidence": 1, "diagnosticInfo": { ... }, "match": { "intent": { "name": "projects/PROJECT_ID/locations/us-central1/agents/133b0350-f2d2-4928-b0b3-5b332259d0f7/intents/0adebb70-a727-4687-b8bc-fbbc2ac0b665", "displayName": "order.new" }, "resolvedInput": "I want to buy a shirt", "matchType": "INTENT", "confidence": 1 } } }
Java
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Produzione
Prima di eseguire l'agente in produzione, assicurati di implementare le best practice per la produzione.