Per ogni turno di conversazione, ha luogo un'interazione. Durante un'interazione, un utente finale invia un input a Dialogflow CX, e Dialogflow CX invia una risposta. Quando implementi il sistema per gestire le interazioni, hai due opzioni: utilizzare l'API o un'integrazione.
Quando utilizzando l'API, il sistema deve gestire quanto segue:
- Crea un agente.
- Fornisci un'interfaccia utente per gli utenti finali.
- Chiama l'API Dialogflow per ogni svolta di conversazione per inviare input utente finale all'API.
- A meno che le risposte dell'agente non siano puramente statiche (non comuni), devi ospitare un servizio webhook per gestire il completamento attivato tramite webhook.
Se 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 vengono eseguiti per un turno di conversazione di una sessione.
- L'utente finale digita o dice qualcosa, noto come input dell'utente finale.
- L'interfaccia utente o il sistema di integrazione riceve l'input. e la inoltra all'API Dialogflow in una richiesta di rilevamento dell'intento.
- L'API Dialogflow riceve la richiesta di rilevamento di intent. Corrisponde all'input di un intent o a un parametro del 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 webhook al tuo servizio webhook altrimenti vai al passaggio 6.
- Il tuo servizio webhook riceve la richiesta di webhook. Il servizio esegue le azioni necessarie, come le chiamate ad API esterne, eseguire query o aggiornare un database e così via.
- Il servizio webhook crea una risposta e invia un risposta webhook a Dialogflow CX.
- Dialogflow CX crea una risposta di rilevamento dell'intento. Se è stato chiamato un webhook, utilizza la risposta fornita. nella risposta webhook. Se non è stato chiamato alcun webhook, utilizza la risposta statica. definiti nell'agente. Dialogflow CX invia una risposta di rilevamento di 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 il testo o la risposta audio all'utente finale.
- L'utente finale vede o sente la risposta.
Scopo della guida
Questa guida mostra come chiamare l'API per un turno di conversazione per un agente che non utilizza un'integrazione (passaggio 2 del diagramma precedente). Questa guida non mostra come implementare un'interfaccia utente per il tuo utente finale.
Prima di iniziare
Prima di leggere questa guida, devi procedere nel seguente modo:
- Leggi le nozioni di base su Dialogflow CX.
- Esegui la procedura di configurazione.
- Crea un nuovo agente o continua a utilizzare quello creato Crea un agente.
Raccogliere gli 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 di agenti.
- Fai clic sull'opzione more_vert per un agente nell'elenco.
- Fai clic sul nome della copia filter_none .
- Viene copiato il nome identificativo completo dell'agente,
che include 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.
R
sessione
rappresenta una conversazione tra un agente Dialogflow CX e un utente finale.
Puoi creare un ID sessione univoco all'inizio di una conversazione
e utilizzarlo per ogni turno della conversazione.
Per provare l'API,
puoi utilizzare qualsiasi ID stringa di massimo 36 byte,
come test-session-123
.
Rileva intent di 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 di sessione | Risorsa di sessione |
RPC | Interfaccia di sessione | Interfaccia di sessione |
C++ | SessionsClient | Non disponibile |
C# | SessionsClient | Non disponibile |
Vai | 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, apporta 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 delle seguenti 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 Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Produzione
Prima di eseguire l'agente in produzione, assicurati di implementare best practice per la produzione.