Progettare l'esperienza utente

SI APPLICA A: SDK v4

È possibile creare bot con varie funzionalità, ad esempio testo, pulsanti, immagini, schede avanzate visualizzate in formato carousel o elenco e altro ancora. Tuttavia, ogni canale, ad esempio Facebook, Slack e così via, controlla infine come i client di messaggistica eseguono il rendering delle funzionalità. Anche se più canali supportano una funzionalità, ogni canale può eseguirne il rendering in modo leggermente diverso. Nei casi in cui un messaggio contiene funzionalità che un canale non supporta in modo nativo, il canale può tentare di eseguire il rendering del contenuto dei messaggi come testo o come immagine statica, che può influire significativamente sull'aspetto del messaggio sul client. In alcuni casi un canale potrebbe non supportare affatto una determinata funzionalità. Ad esempio, i client GroupMe non possono visualizzare un indicatore di digitazione.

Controlli utente avanzati

I controlli utente avanzati sono controlli dell'interfaccia utente comuni, come pulsanti, immagini, sequenze e menu, presentati dal bot all'utente e con cui l'utente interagisce per comunicare la scelta e la finalità. Un bot può usare una raccolta di controlli dell'interfaccia utente per simulare un'app o può addirittura essere eseguito come incorporato all'interno di un'app. Quando un bot viene incorporato all'interno di un'app o di un sito Web, può rappresentare praticamente qualsiasi controllo dell'interfaccia utente, usando le funzionalità dell'app che lo ospita.

Gli sviluppatori di applicazioni e siti Web si sono basati sui controlli dell'interfaccia utente per consentire agli utenti di interagire con le applicazioni. Questi stessi controlli dell'interfaccia utente possono essere efficaci anche nei bot. Ad esempio, i pulsanti sono un ottimo metodo per presentare all'utente una semplice scelta. Consentire all'utente di comunicare "Hotels" selezionando un pulsante con l'etichetta Hotels è più semplice e veloce che forzare l'utente a digitare "Hotels". Nei dispositivi mobili, ad esempio, la selezione è spesso preferibile rispetto alla digitazione.

Schede

Le schede permettono di presentare agli utenti diversi messaggi visivi, audio e/o selezionabili per semplificare il flusso della conversazione. Se un utente deve selezionare una voce all'interno di un set fisso di voci, è possibile configurare una sequenza di schede, ognuna contenente un'immagine, una descrizione di testo e un singolo pulsante di selezione. Se un utente può scegliere tra una serie di opzioni per una singola voce, è possibile presentare una singola immagine più piccola e una raccolta di pulsanti con diverse opzioni tra cui scegliere. Se l'utente ha chiesto altre informazioni su un argomento, le schede possono fornire informazioni approfondite tramite input audio o video oppure una ricevuta contenente i dettagli di un'esperienza di acquisto. È disponibile un'ampia gamma di usi per le schede che consentono di guidare la conversazione tra l'utente e il bot. Il tipo di scheda usato è determinato dalle esigenze dell'applicazione. Esaminiamo più in dettaglio le schede, le relative azioni e alcuni usi consigliati.

Le schede di intelligenza artificiale di Azure servizio Bot sono oggetti programmabili contenenti raccolte standardizzate di controlli utente avanzati riconosciuti in un'ampia gamma di canali. La tabella seguente descrive l'elenco delle schede disponibili e alcuni suggerimenti di utilizzo basati su procedure consigliate per ogni tipo di scheda.

Tipo di scheda Esempio Descrizione
AdaptiveCard Image of an Adaptive Card. Formato di scambio di schede aperto di cui viene eseguito il rendering come oggetto JSON. Viene usata in genere per la distribuzione di schede tra canali. Le schede si adattano all'aspetto di ogni canale host.
AnimationCard Image of an animation card. Scheda che può eseguire GIF animate o brevi video.
AudioCard Image of an audio card. Scheda che può eseguire un file audio.
HeroCard Image of a hero card. Scheda che contiene un'unica grande immagine, uno o più pulsanti e testo. Viene usata in genere per evidenziare visivamente una possibile selezione dell'utente.
ThumbnailCard Image of a thumbnail card. Scheda che contiene una singola immagine di anteprima, uno o più pulsanti e testo. Viene usata in genere per evidenziare visivamente i pulsanti per una possibile selezione dell'utente.
ReceiptCard Image of a receipt card. Scheda che permette a un bot di fornire una ricevuta all'utente. Contiene in genere l'elenco di voci da includere nella ricevuta, informazioni su imposte e totali e altro testo.
SignInCard Image of a sign-in card. Scheda che consente a un utente di accedere. Contiene in genere testo e uno o più pulsanti che l'utente può usare per avviare un processo di accesso.
SuggestedAction Image of suggested actions rendered as buttons within a chat. Presenta all'utente un set di azioni scheda che rappresentano una scelta dell'utente. I pulsanti scompaiono dopo aver selezionato una delle azioni suggerite.
VideoCard Image of a video card. Scheda che può riprodurre video. Viene usata in genere per aprire un URL e trasmettere un video disponibile.
CardCarousel Image of a card carousel. Raccolta di schede scorrevole in orizzontale che permette all'utente di visualizzare facilmente una serie di possibili scelte.

Le schede consentono di progettare il bot una sola volta e di usarlo tra vari canali. Tuttavia, non tutti i tipi di scheda sono completamente supportati su tutti i canali disponibili.

  • Istruzioni dettagliate per l'aggiunta di schede al bot sono disponibili in Aggiungere allegati multimediali con schede avanzate e Aggiungere azioni suggerite ai messaggi.

  • Per il codice di esempio, vedere i bot di esempio seguenti nel repository di esempi di Bot Framework .

    Esempio Nome Descrizione
    6 Uso delle schede Illustra l'uso di tutti i tipi di scheda.
    7 Schede adattive Illustra l'uso delle schede adattive.
    8 Azioni consigliate Illustra l'uso delle azioni suggerite.
    15 Allegati Illustra come accettare allegati forniti dall'utente.

Quando si progetta il bot, non ignorare automaticamente gli elementi comuni dell'interfaccia utente perché non sono abbastanza intelligenti. Come illustrato nell'esperienza utente conversazionale, il bot deve essere progettato per risolvere il problema dell'utente nel modo migliore, più rapido e più semplice possibile. Evitare la tentazione di iniziare incorporando la comprensione del linguaggio naturale, poiché spesso non è necessario e introduce complessità ingiustificate.

Suggerimento

Per iniziare, usare il numero minimo di controlli dell'interfaccia utente necessario per la risoluzione del problema dell'utente, per poi aggiungere altri elementi successivamente se i primi controlli non sono più sufficienti.

Testo e riconoscimento del linguaggio naturale

Un bot può accettare input di testo dagli utenti e tentare di analizzare l'input usando api di corrispondenza di espressioni regolari o di comprensione del linguaggio naturale. A seconda del tipo di input immesso dall'utente, il riconoscimento del linguaggio naturale può essere o meno una buona soluzione.

In alcuni casi, un bot può porre all'utente una domanda specifica. Se, ad esempio, il bot chiede "Come ti chiami?", l'utente può rispondere con il testo che specifica solo il nome, ad esempio "Davide", o con una frase, ad esempio "Mi chiamo Davide".

Il fatto di porre domande specifiche riduce l'ambito delle possibili risposte che il bot può ragionevolmente ricevere, diminuendo la complessità della logica necessaria per analizzare e riconoscere la risposta. Ad esempio, si consideri la domanda a risposta aperta più generale "Come ti senti?". Comprendere le numerose possibili permutazioni di potenziali risposte a una domanda di questo tipo è un'attività complessa.

Al contrario, domande specifiche come "Senti dolore? Sì/no" e "Dove ti fa male? Torace/testa/braccio/gamba" generano con maggiore probabilità risposte più specifiche che un bot è in grado di analizzare e riconoscere senza dover implementare il riconoscimento del linguaggio naturale.

Suggerimento

Quando possibile, porre domande specifiche che non richiedono funzionalità di comprensione del linguaggio naturale per analizzare la risposta. In questo modo, il bot sarà più semplice e vi sarà una probabilità maggiore che riesca a comprendere l'utente.

In altri casi, un utente può digitare un comando specifico. Ad esempio, un bot DevOps che permette agli sviluppatori di gestire macchine virtuali può essere progettato per accettare comandi specifici, come "/ARRESTA VM XYZ" o "/AVVIA VM XYZ". La progettazione di un bot di questo tipo in modo che accetti comandi specifici crea una buona esperienza utente, in quanto la sintassi è facile da apprendere e il risultato previsto di ogni comando è chiaro. Inoltre, il bot non richiederà funzionalità di comprensione del linguaggio naturale, poiché l'input dell'utente può essere facilmente analizzato usando espressioni regolari.

Suggerimento

La progettazione di un bot che richiede l'immissione di comandi specifici da parte dell'utente può offrire spesso un'ottima esperienza utente, eliminando anche la necessità di aggiungere funzionalità di riconoscimento del linguaggio naturale.

Per una knowledge base o domande e risposte bot, un utente può porre domande generali. Ad esempio, si supponga un bot in grado di rispondere a domande basate sul contenuto di migliaia di documenti. I servizi di intelligenza artificiale di Azure e Ricerca di Azure sono entrambe tecnologie progettate in modo specifico per questo tipo di scenario. Per altre informazioni, vedere Progettare bot di knowledge base e Language Understanding.

Suggerimento

Se si progetta un bot che risponderà a domande basate su dati strutturati o non strutturati da database, pagine Web o documenti, è consigliabile usare tecnologie progettate appositamente per risolvere questo scenario, anziché tentare di risolvere il problema con la comprensione del linguaggio naturale.

In altri scenari, un utente può digitare richieste semplici in base al linguaggio naturale. Ad esempio, un utente potrebbe digitare "Vorrei una pizza ai peperoni" o "Ci sono ristoranti vegetariani aperti nel raggio di 4 chilometri da casa mia?". Le API di comprensione del linguaggio naturale sono ideali per scenari come questo.

Usando le API, il bot può estrarre componenti chiave del testo dell'utente per identificarne la finalità. Nell'implementare funzionalità di riconoscimento del linguaggio naturale nel bot, definire aspettative realistiche per il livello di dettaglio probabilmente fornito dagli utenti nel proprio input.

Suggerimento

Quando si creano modelli di linguaggio naturale, non si presuppone che gli utenti forniscano tutte le informazioni necessarie nella query iniziale. Progettare il bot in modo da richiedere in modo specifico le informazioni necessarie, guidando l'utente nell'immissione di tali informazioni tramite una serie di domande, se necessario.

Voce

Un bot può usare l'input vocale e l'output per comunicare con gli utenti. Nei casi in cui un bot è stato progettato per supportare dispositivi privi di tastiera o monitor, la voce è l'unico mezzo per comunicare con l'utente.

Scelta tra controlli utente avanzati, testo e linguaggio naturale e comandi vocali

Allo stesso modo in cui nel mondo reale le persone comunicano tra loro tramite una combinazione di gesti, voce e simboli, i bot possono comunicare con gli utenti tramite una combinazione di controlli utente avanzati, testo (che include a volte il linguaggio naturale) e comandi vocali. Questi metodi di comunicazione possono essere usati insieme; non è necessario sceglierne uno rispetto all'altro.

Ad esempio, si supponga un bot per la cucina, che aiuta gli utenti a completare ricette, in cui il bot può fornire istruzioni riproducendo un video o visualizzando un serie di immagini per descrivere i diversi passaggi. Alcuni utenti possono preferire di capovolgere le pagine della ricetta o porre domande al bot usando il parlato durante l'assemblaggio di una ricetta. Altri possono scegliere di toccare lo schermo di un dispositivo invece di interagire con il bot tramite comandi vocali. Quando si progetta il bot, incorporare gli elementi dell'esperienza utente che supportano i modi in cui gli utenti preferiscono probabilmente interagire con il bot, in base ai casi d'uso specifici destinati al supporto.