Nozioni di base su Dialogflow ES

Questa pagina descrive le nozioni di base sull'utilizzo di Dialogflow ES. Ti consigliamo di leggere questa pagina prima di passare ad altri documenti o guide rapide.

Aiutare gli utenti a interagire con la tecnologia

Le interfacce dei computer tradizionali richiedono input strutturati e prevedibili per funzionare correttamente, il che rende l'utilizzo di queste interfacce innaturale e a volte difficile. Se gli utenti finali non riescono a comprendere facilmente questo input strutturato, hanno difficoltà a capire cosa fare. Idealmente, le tue interfacce possono dedurre ciò che vogliono gli utenti finali, in base al linguaggio naturale che utilizzano.

Ad esempio, prendiamo in considerazione una semplice richiesta dell'utente come "Quali sono le previsioni meteo di oggi?". Altri utenti finali potrebbero anche chiedere:

  • "Che tempo fa adesso?"
  • "Che temperatura farà domani a San Francisco?"
  • "Che tempo farà il 21?"

Anche con queste semplici domande, puoi capire che le esperienze di conversazione sono difficili da implementare. L'interpretazione e l'elaborazione del linguaggio naturale richiedono un parser del linguaggio molto affidabile. Dialogflow si occupa di tutto, in modo da poter offrire un'esperienza di conversazione di alta qualità per gli utenti finali.

Agenti

Un agente Dialogflow è un agente virtuale che gestisce conversazioni simultanee con gli utenti finali. Si tratta di un modulo di comprensione del linguaggio naturale che comprende le sfumature del linguaggio umano. Dialogflow traduce il testo o l'audio dell'utente finale durante una conversazione in dati strutturati comprensibili dalle tue app e dai tuoi servizi. Progetta e crea un agente Dialogflow per gestire i tipi di conversazioni richiesti per il tuo sistema.

Un agente Dialogflow è simile a un agente di call center umano. Li addestrini entrambi a gestire gli scenari di conversazione previsti e la formazione non deve essere eccessivamente esplicita.

Intent

Un intent classifica l'intenzione di un utente finale per un turno di conversazione. Per ogni agente, definisci molti intent, dove gli intent combinati possono gestire una conversazione completa. Quando un utente finale scrive o dice qualcosa, espressione dell'utente finale, Dialogflow associa l'espressione dell'utente finale all'intento migliore nell'agente. La corrispondenza a un'intenzione è nota anche come classificazione dell'intenzione.

Ad esempio, potresti creare un agente meteo che riconosca e risponda alle domande degli utenti finali sul meteo. Probabilmente definiresti un'intenzione per le domande sulla previsione del meteo. Se un utente finale dice "Qual è la previsione?", Dialogflow assocerebbe l'espressione dell'utente finale all'intenzione di previsione. Puoi anche definire l'intenzione di estrarre informazioni utili dall'espressione dell'utente finale, come un orario o una località per la previsione meteo desiderata. Questi dati estratti sono importanti per il sistema per eseguire una query sul meteo per l'utente finale.

Agente che estrae i dati dall'espressione dell'utente finale che richiede il meteo

Un'intenzione di base contiene quanto segue:

  • Frasi di addestramento: sono frasi di esempio di ciò che potrebbero dire gli utenti finali. Quando un'espressione dell'utente finale assomiglia a una di queste frasi, Dialogflow trova una corrispondenza con l'intenzione. Non devi definire ogni possibile esempio, perché il machine learning integrato di Dialogflow amplia il tuo elenco con altre frasi simili.
  • Azione: puoi definire un'azione per ogni intent. Quando viene trovata una corrispondenza per un intent, Dialogflow fornisce l'azione al sistema e puoi utilizzarla per attivare determinate azioni definite nel sistema.
  • Parametri: quando un'intenzione viene associata in fase di esecuzione, Dialogflow fornisce i valori estratti dall'espressione dell'utente finale come parametri. Ogni parametro ha un tipo, chiamato tipo di entità, che determina esattamente come vengono estratti i dati. A differenza dell'input utente finale non elaborato, i parametri sono dati strutturati che possono essere facilmente utilizzati per eseguire alcune operazioni logiche o generare risposte.
  • Risposte: definisci le risposte di testo, vocali o visive da restituire all'utente finale. Questi possono fornire risposte all'utente finale, chiedere all'utente finale ulteriori informazioni o terminare la conversazione.

Il seguente diagramma mostra il flusso di base per la corrispondenza dell'intenzione e la risposta all'utente finale:

Agente e intenzione che gestiscono un'espressione dell'utente finale

Entità

Ogni parametro dell'intent ha un tipo, chiamato tipo di entità, che indica esattamente come vengono estratti i dati da un'espressione dell'utente finale.

Dialogflow fornisce entità di sistema predefinite che possono corrispondere a molti tipi comuni di dati. Ad esempio, esistono entità di sistema per la corrispondenza di date, orari, colori, indirizzi email e così via. Puoi anche creare le tue entità personalizzate per abbinare i dati personalizzati. Ad esempio, potresti definire un'entità verdura che possa associare i tipi di verdure disponibili per l'acquisto a un agente di un negozio di alimentari.

Contesti

I contesti di Dialogflow sono simili al contesto del linguaggio naturale. Se una persona ti dice "sono arancioni", hai bisogno del contesto per capire a cosa si riferisce "sono". Analogamente, affinché Dialogflow possa gestire un'espressione dell'utente finale come questa, deve essere fornito il contesto per poter associare correttamente un intent.

Con i contesti, puoi controllare il flusso di una conversazione. Puoi configurare i contesti per un'intenzione impostando contesti di input e output, identificati da nomi di stringa. Quando viene trovata una corrispondenza per un'intenzione, tutti i contesti di output configurati per quell'intenzione diventano attivi. Quando sono attivi tutti i contesti, Dialogflow ha maggiori probabilità di trovare una corrispondenza per gli intent configurati con contesti di input corrispondenti ai contesti attualmente attivi.

Il seguente diagramma mostra un esempio che utilizza il contesto per un agente bancario.

Diagramma dell'utente che interagisce con intent e contesto.
  1. L'utente finale chiede informazioni sul proprio conto corrente.
  2. Dialogflow associa questa espressione dell'utente finale all'intenzione CheckingInfo. Questo intento ha un contesto di output checking, quindi questo contesto diventa attivo.
  3. L'agente chiede all'utente finale il tipo di informazioni che vuole sul suo conto corrente.
  4. L'utente finale risponde con "il mio saldo".
  5. Dialogflow associa questa espressione dell'utente finale all'intenzione CheckingBalance. Questo intento ha un contesto di input checking, che deve essere attivo per corrispondere a questo intento. Può esistere anche un'intenzione SavingsBalance simile per abbinare la stessa espressione dell'utente finale quando è attivo un contesto savings.
  6. Dopo che il sistema ha eseguito le query necessarie al database, l'agente risponde con il saldo del conto corrente.

Intenti di follow-up

Puoi utilizzare gli intent di follow-up per impostare automaticamente i contesti per coppie di intent. Un'intenzione di follow-up è un elemento secondario dell'intenzione principale associata. Quando crei un'intenzione di follow-up, viene aggiunto automaticamente un contesto di output all'intenzione principale e un contesto di input dello stesso nome all'intenzione di follow-up. Un'intenzione di follow-up viene associata solo quando l'intenzione principale è associata nel turno di conversazione precedente. Puoi anche creare più livelli di intent di follow-up nidificati.

Dialogflow fornisce molti intent di follow-up predefiniti per le risposte comuni degli utenti finali, come "sì", "no" o "annulla". Puoi anche creare le tue intenzioni di follow-up per gestire le risposte personalizzate.

Console Dialogflow

Dialogflow fornisce un'interfaccia utente web chiamata Dialogflow Console (visita la documentazione, apri la console). Utilizza questa console per creare, compilare e testare gli agenti.

La console Dialogflow è diversa dalla console della Google Cloud Platform (GCP) (visita la documentazione, apri la console). La console Dialogflow viene utilizzata per gestire gli agenti Dialogflow, mentre la console di GCP viene utilizzata per gestire le impostazioni di Dialogflow specifiche di Google Cloud (ad esempio la fatturazione) e altre risorse Google Cloud.

Nella maggior parte dei casi, devi utilizzare la console Dialogflow per creare agenti, ma puoi anche utilizzare l'API Dialogflow per creare agenti per scenari avanzati.

Interazioni degli utenti con le integrazioni

Dialogflow si integra con molte piattaforme di conversazione popolari come Assistente Google, Slack e Facebook Messenger. Se vuoi creare un agente per una di queste piattaforme, devi utilizzare una delle numerose opzioni di integrazione. Le interazioni dirette con gli utenti finali vengono gestite per te, in modo da poterti concentrare sulla creazione del tuo agente. Ogni integrazione gestisce le interazioni degli utenti finali in modo specifico per la piattaforma, quindi consulta la documentazione della tua piattaforma di integrazione per maggiori dettagli.

Adempimento per le integrazioni

Per impostazione predefinita, l'agente risponde a un intento corrispondente con una risposta statica. Se utilizzi una delle opzioni di integrazione, puoi fornire una risposta più dinamica utilizzando il fulfillment. Quando attivi il completamento per un intent, Dialogflow risponde a quell'intent chiamando un servizio definito da te. Ad esempio, se un utente finale vuole prenotare un taglio di capelli per venerdì, il tuo servizio può controllare il tuo database e rispondere all'utente finale fornendo informazioni sulla disponibilità per venerdì.

Ogni intent ha un'impostazione per attivare l'esecuzione. Se un'intenzione richiede un'azione da parte del sistema o una risposta dinamica, devi attivare l'esecuzione per l'intenzione. Se viene trovata una corrispondenza per un intent senza fulfillment abilitato, Dialogflow utilizza la risposta statica che hai definito per l'intent.

Quando viene associato un intent con il completamento abilitato, Dialogflow invia una richiesta al servizio webhook con informazioni sull'intent associato. Il sistema può eseguire le azioni richieste e rispondere a Dialogflow fornendo informazioni su come procedere. Quando il fulfillment è attivato, la risposta statica che hai definito per l'intent viene utilizzata solo se il servizio webhook non va a buon fine. Il seguente diagramma mostra il flusso di elaborazione per l'evasione.

Diagramma che mostra il flusso per l'evasione
  1. L'utente finale digita o pronuncia un'espressione.
  2. Dialogflow associa l'espressione dell'utente finale a un'intenzione ed estrae i parametri.
  3. Dialogflow invia un messaggio di richiesta webhook al tuo servizio webhook. Questo messaggio contiene informazioni sull'intent a cui corrisponde, sull'azione, sui parametri e sulla risposta definiti per l'intent.
  4. Il servizio esegue le azioni necessarie, ad esempio query sul database o chiamate API esterne.
  5. Il servizio invia un messaggio di risposta webhook a Dialogflow. Questo messaggio contiene la risposta da inviare all'utente finale.
  6. Dialogflow invia la risposta all'utente finale.
  7. L'utente finale vede o sente la risposta.

Interazioni dell'utente con l'API

Se non utilizzi una delle opzioni di integrazione, devi scrivere codice che interagisca direttamente con l'utente finale. Inoltre, devi interagire direttamente con l'API di Dialogflow per ogni turno di conversazione per inviare le espressioni degli utenti finali e ricevere le corrispondenze di intent. Il seguente diagramma mostra il flusso di elaborazione durante l'interazione con l'API.

Diagramma che mostra il flusso per l'API
  1. L'utente finale digita o pronuncia un'espressione.
  2. Il tuo servizio invia questa espressione dell'utente finale a Dialogflow in un messaggio di richiesta di rilevamento dell'intenzione.
  3. Dialogflow invia un messaggio di risposta al rilevamento dell'intento al tuo servizio. Questo messaggio contiene informazioni sull'intent a cui corrisponde, sull'azione, sui parametri e sulla risposta definiti per l'intent.
  4. Il servizio esegue le azioni necessarie, ad esempio query sul database o chiamate API esterne.
  5. Il servizio invia una risposta all'utente finale.
  6. L'utente finale vede o sente la risposta.