Per ogni turno di conversazione, avviene un'interazione. Durante un'interazione, un utente finale invia un input a Conversational Agents (Dialogflow CX), che invia una risposta. Quando implementi il sistema per gestire le interazioni, hai due opzioni: utilizzare l'API o un'integrazione.
Quando utilizzi l'API, il tuo sistema deve gestire quanto segue:
- Crea un agente.
- Fornisci un'interfaccia utente per gli utenti finali.
- Chiama l'API Dialogflow per ogni turno di conversazione per inviare l'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.
Quando utilizzi un'integrazione, il tuo sistema deve gestire solo quanto segue:
- Crea un agente.
- Se vuoi, 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 lo inoltra all'API Dialogflow in una richiesta di rilevamento dell'intenzione.
- L'API Dialogflow riceve la richiesta di rilevamento dell'intento. Abbina l'input a un parametro di intent o modulo, imposta i parametri in base alle esigenze e aggiorna lo stato della sessione. Se deve chiamare un'implementazione abilitata per gli webhook, invia una richiesta webhook al tuo servizio webhook, altrimenti vai al passaggio 6.
- Il servizio webhook riceve la richiesta webhook. Il servizio esegue tutte le azioni necessarie, come chiamare API esterne, eseguire query o aggiornare un database e così via.
- Il servizio webhook genera una risposta e la invia nuovamente a Conversational Agents (Dialogflow CX).
- Conversational Agents (Dialogflow CX) crea una risposta di rilevamento dell'intent. Se è stato chiamato un webhook, viene utilizzata la risposta fornita nella risposta dell'webhook. Se non è stato chiamato alcun webhook, viene utilizzata la risposta statica definita nell'agente. Conversational Agents (Dialogflow CX) invia una risposta di rilevamento dell'intenzione alla tua interfaccia utente o al tuo sistema di integrazione.
- L'interfaccia utente o il sistema di integrazione riceve la risposta al rilevamento dell'intenzione e inoltra la risposta di testo o 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 sopra). Questa guida non mostra come implementare un'interfaccia utente per l'utente finale.
Prima di iniziare
Prima di leggere questa guida, devi:
- Leggi le nozioni di base sui flussi.
- Esegui i passaggi di configurazione.
- Crea un nuovo agente o continua a utilizzare quello che hai creato in Creare un agente utilizzando i flussi o Creare un agente utilizzando i playbook.
Raccogliere gli ID
I sample riportati di seguito richiedono più ID come input. Per trovare l'ID progetto, l'ID regione e l'ID agente:
Console di Dialogflow CX
- Apri la console Dialogflow CX.
- Seleziona il tuo progetto Google Cloud per aprire il selettore di agenti.
- Fai clic sul menu opzionimore_vert per un agente nell'elenco.
- Fai clic sul pulsante di copia del nome filter_none.
- Verrà copiato il nome completo che identifica l'agente,
che include l'ID progetto, l'ID regione e l'ID agente
nel formato:
projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID
Console di Agent Builder
Vai alla console Agent Builder:
L'ID progetto viene visualizzato nella parte superiore della console.
La colonna Località mostra gli ID regione.
Seleziona un'app.
Il segmento del percorso dell'URL del browser dopo
agents/
contiene l'ID app dell'agente.
Ti serve anche un ID sessione.
Una
sessione rappresenta una conversazione tra un agente Conversational Agents (Dialogflow CX) e un utente finale.
Devi creare un ID sessione univoco all'inizio di una conversazione
e utilizzarlo per ogni passaggio della conversazione.
Per provare l'API,
puoi utilizzare qualsiasi ID stringa di massimo 36 byte,
come test-session-123
.
Rileva intent di chiamata
I seguenti esempi 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 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: il tuo ID 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 autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per autenticarti a Dialogflow, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per autenticarti a 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.