Tunneling: esempio di chat in tempo reale su AIsuru
Tunneling: un esempio di live chat
In questa sezione vedremo come implementare una live chat usando gli Intenti dinamici e il tunneling. Questo esempio ci permetterà di esplorare nel dettaglio sia il funzionamento del tunneling sia la struttura delle chiamate agli Intenti dinamici.
Lo scenario della live chat
Una live chat è un esempio perfetto per illustrare il tunneling perché richiede:
Una conversazione continuativa con un servizio esterno;
Il mantenimento del contesto tra i messaggi;
La gestione delle risposte in tempo reale.
Struttura dell'intento dinamico
Per implementare la live chat, configuriamo l'intento dinamico con:
Nome: "LIVE_CHAT";
Frasi di attivazione: "Voglio parlare con un operatore", "Live chat", ecc.;
Webhook: URL del servizio che gestisce la live chat.
Quando l'utente attiva l'intento, il webhook riceve una richiesta con questa struttura:
{
"intentName": "LIVE_CHAT",
"utterance": "I want to speak to an operator",
"slotValues": {},
"currentTag": "string",
"currentTagAuthenticated": true,
"contextVars": {},
"memoriID": "string",
"sessionID": "string",
"culture": "en-US"
}Avvio del tunneling
Il webhook risponde attivando il tunneling per prendere il controllo della conversazione:
Da questo momento:
Ogni messaggio dell'utente viene inviato direttamente al webhook;
L'Agente non elabora più i messaggi: li inoltra semplicemente al servizio di chat;
Le risposte dell'operatore arrivano tramite il webhook, che le inoltra all'Agente tramite l'emission.
Gestione della conversazione
Durante la chat, ogni messaggio dell'utente genera una richiesta al webhook:
Il webhook risponde mantenendo attivo il tunneling:
Chiusura della chat
Quando l'operatore chiude la chat, il webhook invia una risposta che termina il tunneling:
L'Agente riprende il normale controllo della conversazione.
L'esempio della live chat mostra come il tunneling ti permetta di creare interazioni complesse mantenendo un'architettura pulita e gestibile. Gli stessi principi si applicano a molti altri scenari che richiedono una conversazione continuativa con un sistema esterno.
Ultimo aggiornamento