Per ogni turno di conversazione, si verifica un'interazione. Durante un'interazione, un utente finale invia input a Conversational Agents (Dialogflow CX) e Conversational Agents (Dialogflow CX) 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.
- Fornire un'interfaccia utente per gli utenti finali.
- Chiama l'API Dialogflow per ogni turno di conversazione per inviare l'input utentee finale all'API.
- A meno che le risposte dell'agente non siano puramente statiche (evento raro), devi ospitare un servizio webhook per gestire l'fulfillment abilitato per i webhook.
Quando utilizzi un'integrazione, il tuo sistema deve gestire solo quanto segue:
- Crea un agente.
- (Facoltativo) Implementa un servizio webhook.
Il seguente diagramma mostra i passaggi che vengono eseguiti per un turno conversazionale di una sessione.
- L'utente finale digita o dice qualcosa, noto come input dell'utente finale.
- La tua interfaccia utente o il tuo 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 a un parametro di intent o modulo, imposta i parametri in base alle esigenze e aggiorna lo stato della sessione. Se deve chiamare un fulfillment abilitato per i webhook, invia una richiesta webhook al tuo servizio webhook, altrimenti vai al passaggio 6.
- Il servizio webhook riceve la richiesta webhook. Il servizio esegue le azioni necessarie, come chiamare API esterne, eseguire query o aggiornare un database e così via.
- Il servizio webhook crea una risposta e invia una risposta webhook a Conversational Agents (Dialogflow CX).
- Conversational Agents (Dialogflow CX) crea una risposta di rilevamento dell'intent. Se è stato chiamato un webhook, utilizza la risposta fornita nella risposta del 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'intent alla tua interfaccia utente o al tuo sistema di integrazione.
- L'interfaccia utente o il sistema di integrazione riceve la risposta di rilevamento dell'intent 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 conversazionale per un agente che non utilizza un'integrazione (passaggio 2 del diagramma precedente). 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 creato in Crea un agente utilizzando i flussi o Crea un agente utilizzando i playbook
Raccogliere ID
Gli esempi riportati di seguito richiedono diversi 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 dell'agente.
- Fai clic sul menu more_vert opzioni per un agente nell'elenco.
- Fai clic sul pulsante filter_none Copia nome.
- 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
Console AI Applications
Vai alla console AI Applications:
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.
All'inizio di una conversazione, crei un ID sessione univoco
e lo utilizzi per ogni turno della conversazione.
Per provare l'API,
puoi utilizzare qualsiasi ID stringa di massimo 36 byte,
ad esempio test-session-123
.
Call detect intent
Gli esempi riportati di seguito chiamano il metodo Sessions.detectIntent
.
Seleziona un protocollo e una versione per il riferimento alla sessione:
Protocollo | V3 | V3beta1 |
---|---|---|
REST | Risorsa sessione | Risorsa sessione |
RPC | Interfaccia della sessione | Interfaccia della 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 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 ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Messa in produzione
Prima di eseguire l'agente in produzione, assicurati di implementare le best practice per la produzione.