Per ogni turno di conversazione si verifica un'interazione. Durante un'interazione, un utente finale invia 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 utilizzi l'API, il sistema deve gestire quanto segue:
- Creare un agente.
- Fornire un'interfaccia utente per gli utenti finali.
- Chiamare l'API Dialogflow per ogni turno di conversazione per inviare input utente finale all'API.
- A meno che le risposte dell'agente non siano puramente statiche (cosa rara), devi ospitare un servizio webhook per gestire il fulfillment abilitato per i webhook.
Quando utilizzi un' integrazione, il sistema deve gestire solo quanto segue:
- Creare un agente.
- Implementare un servizio webhook (facoltativo).
Il seguente diagramma mostra i passaggi che si verificano 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'intent.
- L'API Dialogflow riceve la richiesta di rilevamento dell'intent. Abbina l'input a 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 i webhook, invia una richiesta webhook al servizio webhook, altrimenti vai al passaggio 6.
- Il servizio webhook riceve la richiesta webhook. Il servizio esegue tutte le azioni necessarie, ad esempio chiamare API esterne, eseguire query o aggiornare un database e così via.
- Il servizio webhook crea una risposta e la invia a Dialogflow CX.
- Dialogflow CX crea una risposta di rilevamento dell'intent. Se è stato chiamato un webhook, utilizza la risposta fornita nella risposta webhook. Se non è stato chiamato alcun webhook, utilizza la risposta statica definita nell'agente. Dialogflow CX 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'intent e inoltra la risposta di testo o audio all'utente finale.
- L'utente finale vede o ascolta 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:
- Leggere le nozioni di base sui flussi.
- Eseguire i passaggi di configurazione .
- Creare un nuovo agente o continuare a utilizzare l'agente creato in Creare un agente utilizzando i flussi o Creare un agente utilizzando i playbook
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:
Console di Dialogflow CX
- Apri la console di Dialogflow CX.
- Seleziona il tuo Google Cloud progetto per aprire il selettore dell'agente.
- Fai clic sul menu more_vert opzioni per un agente nell'elenco.
- Fai clic sul pulsante copia nome 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
Console di Vertex AI Agent Builder
Vai alla console di Vertex AI 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 dell'app dell'agente.
Devi anche avere un ID sessione.
Una
sessione
rappresenta una conversazione tra un agente Dialogflow CX e un utente finale.
Crea un ID sessione univoco all'inizio di una conversazione 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.
Chiamare detectIntent
Gli esempi seguenti chiamano il metodo Sessions.detectIntent.
Seleziona un protocollo e una versione per il riferimento della sessione:
| Protocollo | V3 | V3beta1 |
|---|---|---|
| REST | Risorsa sessione | Risorsa sessione |
| RPC | Interfaccia sessione | Interfaccia 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 sostituzioni seguenti:
- PROJECT_ID: l'ID del tuo progetto Google Cloud
- AGENT_ID: l'ID dell'agente
- REGION_ID: il tuo ID regione
- SESSION_ID: il tuo ID della 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 CX, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per eseguire l'autenticazione in Dialogflow CX, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per eseguire l'autenticazione in Dialogflow CX, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Produzione
Prima di eseguire l'agente in produzione, assicurati di implementare le best practice di produzione.