Progettazione conversazionale
Ecco alcune best practice di alto livello per la progettazione di conversazioni negli assistenti digitali.
Gli utenti implicitamente si aspettano che le applicazioni software abbiano qualità umane. Quando un'applicazione è considerata "user-friendly", è spesso perché mostra caratteristiche umane come la cortesia e il buon senso.
Con le interfacce conversazionali (assistenti digitali), le aspettative sono ancora più alte. Poiché gli assistenti digitali sono progettati intorno al concetto di conversazione umana, è particolarmente importante progettare bene l'assistente digitale in modo da soddisfare le aspettative degli utenti, sia consapevoli che inconsci.
Il design conversazionale rimuove gli aspetti tecnici dal modello di interazione di un'attività o processo sottostante e lo sostituisce con una conversazione dal suono naturale che gli utenti trovano facile da capire e coinvolgente.
Un buon design delle conversazioni mira all'efficienza, ha una comprensione del contesto, riflette i retroscena per l'utente, è emotivamente coinvolgente e crea grandi dialoghi. Come ingegnere, potresti pensare che un buon design della conversazione sia facile da raggiungere, ma tieni presente che non tutti i grandi cantanti sanno come scrivere buoni testi. E non tutti gli autori di buoni testi possono cantare.
Il tuo assistente digitale non è umano, ma se utilizza tecniche di conversazione e segnali e mostra considerazione umana, può far sembrare le conversazioni più naturali (e piacevoli) e ridurre al minimo il potenziale per gli utenti irritanti. Queste qualità in un assistente digitale possono dare agli utenti la sicurezza di essere in grado di affrontare le loro reali preoccupazioni.
Ecco alcune tecniche di conversazione che possono aiutare a rendere il tuo assistente digitale più coinvolgente per gli utenti.
Orientare gli utenti
Una parte fondamentale ma importante della progettazione di un assistente digitale è assicurarsi che gli utenti possano facilmente scoprire come usarlo in modo efficace.
Pagina iniziale
Per scendere sul piede giusto con i tuoi utenti, pensa al modo in cui il tuo assistente digitale saluta gli utenti. Dovrebbero:
- Fornire un'introduzione positiva e accogliente.
- Indica cosa può fare l'assistente digitale e/o cosa ci si aspetta dall'utente.
- Varia i saluti, soprattutto per gli assistenti digitali che vengono utilizzati più volte.
Gli assistenti digitali sono dotati di un'implementazione di benvenuto predefinita, ma puoi anche fornire la tua implementazione.
?
Una parte importante di qualsiasi assistente digitale è essere in grado di dire agli utenti cosa può fare l'assistente digitale e di aiutarli a sbloccarsi se la conversazione non sta andando come si aspettano. Dovrebbero:
- Assicurati che l'assistente digitale sia in grado di gestire una richiesta di aiuto in qualsiasi momento della conversazione, sia che si tratti di una richiesta esplicita di aiuto o di una richiesta più sottile come "cosa puoi fare?"
- Come fai quando accogli gli utenti, indica cosa può fare l'assistente digitale e/o cosa ci si aspetta dall'utente.
Gli assistenti digitali sono dotati di un'implementazione predefinita della Guida, ma potresti voler progettare tu stesso l'esperienza della Guida.
Come lasciare gli utenti
Costringere un utente a completare un thread di conversazione avviato erroneamente crea una cattiva esperienza utente. Quando un utente è in una conversazione, dovrebbe sempre avere un modo di uscire, sia perché la conversazione ha preso una svolta che non vogliono o che semplicemente non desiderano completare la conversazione in quel momento.
È possibile raggiungerlo in alcuni modi. Ad esempio, è possibile assicurarsi che tutte le liste di scelte abbiano un'opzione per uscire dalla conversazione corrente. In alternativa, puoi utilizzare l'intento di uscita integrato dell'assistente digitale per gestire in modo esplicito qualsiasi richiesta specifica per terminare la conversazione corrente.
Suggerimenti e tinte
A seconda della complessità delle tue competenze e dell'assistente digitale, potrebbe essere utile fornire varie forme di guida e spunti visivi per suggerire agli utenti cosa possono fare. Questo può assumere la forma di cose come:
- Suggerimenti all'interno dei messaggi (ad esempio "... o semplicemente dimmi di uscire da questa conversazione se non vuoi andare avanti").
- Informazioni che indicano all'utente cosa può aspettarsi dopo aver completato un'azione.
- Pulsanti per le azioni più comuni.
- Promemoria intervallati durante la conversazione che descrivono come avviare un menu, uscire da una conversazione, chiedere aiuto e parlare con un agente.
Su alcuni canali, puoi anche sfruttare le funzionalità specifiche della piattaforma di messaggistica per fornire pulsanti per azioni comuni come uscire e visualizzare il menu.
Mostra risposte rapide come pulsanti di azione
Quando chiedi agli utenti informazioni, potresti essere in grado di anticipare la scelta dell'utente in base a ciò che le persone di solito selezionano.
Ad esempio, se si richiede una data per una voce di calendario, le opzioni comuni sono "oggi" o "domani". Pertanto, sotto il prompt, è possibile aggiungere due pulsanti con le diciture Oggi e Domani. Quando un utente seleziona uno dei due pulsanti o immette l'etichetta di uno dei pulsanti, la data corrente o quella di domani viene impostata sulla variabile sottostante.
Un altro esempio è il caso in cui il bot ha bisogno di un indirizzo di consegna. Se c'è un indirizzo di casa in archivio, puoi chiedere un indirizzo di consegna e includere anche un pulsante di consegna a casa.
Quando si utilizzano risposte rapide, assicurarsi che gli utenti comprendano che i pulsanti non sono l'unica scelta e che il pulsante possa essere attivato da un messaggio. Ricorda sempre che la conversazione significa anche parlare e che gli utenti che gestiscono il chatbot utilizzando la loro voce non avranno l'opportunità di premere un pulsante. Molto probabilmente, menzioneranno l'etichetta del pulsante.
Garantire una comprensione reciproca
Affinché le conversazioni vadano bene, è necessario assicurarsi che l'assistente digitale comprenda gli utenti e che l'utente comprenda l'assistente digitale. Ecco alcune tecniche che aiutano in questo senso.
Utilizza un linguaggio semplice
Nessun utente parla del modo in cui è stato progettato il database dei prodotti. Assicurati che il tuo bot stia utilizzando la lingua del tuo pubblico di destinazione per cui l'utente tipo che hai definito dovrebbe guidarti. Ad esempio:
-
"account utente" anziché "ID utente"
-
"dove posso consegnare questo a" invece di "indirizzo di spedizione"
-
"Ho fatto del mio meglio ma non ho trovato quello che stavi cercando" invece di "la query non ha restituito un risultato"
Inoltre, è possibile rendere i messaggi meno robotizzati fornendo contesto e guida.
Quindi, invece di "Qual è il tuo ID ordine?", potresti fornire un messaggio più utile come "Posso aiutarti a trovare il tuo ordine. Se riesci a dirmi il tuo numero d'ordine, sarebbe fantastico. In caso contrario, nessun problema. Posso anche cercare per prodotto o data."
Non aspettarti che gli utenti conoscano le parole magiche
Immagina un bot vendite che i funzionari commerciali potrebbero utilizzare per richiedere una rappresentazione grafica dei ricavi generati e del modo in cui tali ricavi hanno raggiunto gli obiettivi previsti.
I grafici possono essere realizzati con molte funzioni, tra cui il tipo di grafico da aggiungere, se aggiungere o meno etichette, il numero di assi Y da visualizzare. Un assistente digitale in cui il funzionario commerciale deve richiedere le sue statistiche dicendo cose come "Mostrami le mie vendite per Q2 / 2021 come torta con no_label double_y_axis in linear_plot" non funzionerà nella pratica.
Rendi chiare le opzioni, mantienili conversazionali e usa il linguaggio del tuo pubblico di destinazione. Se si offrono imbuti, grafici Gantt, grafici a dispersione, grafici a bolle e grafici Pareto, conservare queste informazioni e presentarle in modo diverso all'utente. Ecco alcuni esempi di ciò che un utente di quel bot avrebbe maggiori probabilità di chiedere:
-
"Mostrami una panoramica delle mie vendite per Q2 / 2021"
-
"Mostrami le mie vendite per Q2 / 2021 rispetto allo scorso anno"
Per entrambe le query, la risposta potrebbe essere visualizzata con diversi tipi di grafici senza che l'utente debba comprendere le parole magiche che danno loro ciò che vogliono. Non solo rende il tuo assistente digitale intuitivo da usare, ma riduce anche la scelta, il che è una buona cosa tenendo presente che le attività di conversazione dovrebbero essere ridotte, come discutiamo nella sezione successiva.
Feedback all'interno della conversazione
Assicurati che il tuo bot non sia progettato come un gioco di escape e che fornisci abbastanza puntatori, feedback, conferma, segnalazione e aiuto in modo che gli utenti capiscano sempre cosa ci si aspetta da loro ora, cosa c'è dopo e come sbloccarsi. Ecco alcuni esempi di queste tecniche:
-
Conferma: "OK. Ho ricevuto il tuo ordine".
-
Segnaletica: "OK. Ho ricevuto il tuo ordine. Poi, ho bisogno di sapere dove mandarlo".
-
Prompt: "OK. Ho ricevuto il tuo ordine. Poi, ho bisogno di sapere dove inviare questo. Fatemi sapere a quale indirizzo dovrei consegnarlo".
-
Aiuto: "OK. Ho ricevuto il tuo ordine. Poi, ho bisogno di sapere dove inviare questo. Quindi, fatemi sapere l'indirizzo a cui dovrei consegnarlo o utilizzare il pulsante qui sotto per spedire al vostro indirizzo di casa.
Ci possono essere situazioni in cui l'utente non sa quali informazioni fornire o forse ha anche perso interesse a completare un compito. In questi casi, è possibile visualizzare controlli aggiuntivi (come i pulsanti) per consentire all'utente di annullare un'attività o di passare a uno stato della Guida. Inoltre, utilizzando l'impostazione maxPrompts
nei componenti di input, è possibile anche automatizzare la navigazione a uno stato della Guida quando l'utente fornisce più volte informazioni errate.
Disambigua input utente
Non aver paura di avere la tua abilità a verificare la sua comprensione dell'input dell'utente. La lingua può essere ambigua, anche di persona.
Ad esempio, se è giovedì e un utente dice "Voglio prenotare un appuntamento sabato prossimo", si potrebbe interpretare tale data come due o nove giorni in futuro. In questo caso, vorresti che la tua abilità verificasse la data, magari con parole come "OK, solo per assicurarti di averti capito correttamente, è che sabato 10 o sabato 17?"
Nei flussi di dialogo è consigliabile utilizzare le entità come tipi di variabile durante la raccolta dell'input utente. L'utilizzo delle entità come tipi di variabili convalida l'input dell'utente e rileva automaticamente l'ambiguità, il che significa che tutto ciò che devi fare è trovare la formulazione giusta quando chiedi agli utenti.
Fornisci prompt alternativi
Come accennato in precedenza, è importante scrivere messaggi in uno stile conversazionale. Ma cosa succede se quel messaggio deve essere ripetuto perché l'utente non ha risposto correttamente? Ad esempio:
"Cool. Quindi, dimmi dove spedire questo"
"Cool. Quindi, dimmi dove spedire questo"
"Cool. Quindi, dimmi dove spedire questo"
Anche i messaggi scritti in conversazione suoneranno robotici e non coinvolgenti se vengono ripetuti. Pertanto, è necessario scrivere più versioni di ogni prompt in modo che un utente veda testo diverso se viene riproposto (o se ripete la conversazione).
È possibile utilizzare più prompt definiti nelle entità per visualizzare automaticamente i prompt alternati. Pertanto, se le informazioni utente vengono convalidate da una variabile di tipo entità, è possibile utilizzare la proprietà prompt dell'entità per definire il numero di prompt desiderato. Utilizzando il componente Risolvi entità, è sufficiente associare la variabile ad essa.
Divulga gradualmente informazioni aggiuntive
Avere prompt alternati è fantastico. Ma se un utente non capisce, la riformulazione lo renderà solo leggermente migliore. Qui si desidera divulgare progressivamente ulteriori informazioni o eseguire l'escalation quando necessario.
- Bot: "Cool. Quindi, dimmi dove spedire questo"
- Utente: "to me"
- Bot: "Mi dispiace, ma 'to me' non sembra funzionare per me. Se puoi darmi un nome di strada, un numero di casa e un nome di città, allora posso spedirlo a te".
- Utente: "inviami"
- Bot: "Anche per me non ha funzionato. Vorrei davvero aiutarti qui. Forse vuoi parlare con un mio collega umano. Se è così, chiedimi di collegarti a un agente umano. Oppure mi dai un indirizzo a cui posso spedirlo".
In questo set di prompt, notare come i messaggi rivelino gradualmente più informazioni per aiutare l'utente. L'utilizzo di entità per definire i prompt semplifica l'implementazione di una conversazione di questo tipo. Aggiungere un numero di sequenza ai prompt.
Il numero di sequenza di un prompt indica quando viene visualizzato. L'esempio precedente contiene messaggi con numeri di sequenza da 1 a 3. Se quindi si configura la proprietà maxPrompts
del componente Risolvi entità in 3
, un terzo tentativo di input utente non riuscito attiva la navigazione, ad esempio una Guida o uno stato dell'agente umano.
I prompt con lo stesso numero di sequenza mostrano un comportamento alternato, come descritto nella sezione precedente. In questo modo è possibile ottenere entrambi, esponendo gradualmente informazioni aggiuntive e visualizzando prompt alternati.
Risposte varie e divulgazione progressiva
Avere più risposte per vari punti della conversazione. Le risposte varie migliorano la credibilità dell'abilità con l'utente (non sembra che sia bloccato in un loop). Puoi anche usarli per divulgare progressivamente più informazioni per aiutare un utente a rimanere bloccato.
Ad esempio, se l'utente fornisce un input non valido alla domanda "Quale dimensione si desidera?", è possibile seguire il prompt con qualcosa come "OK, consente di riprovare a trovare una dimensione per voi. Selezionare piccolo, medio o grande."
Conferma e ascolto riflessivo
Le risposte degli skill devono utilizzare l'ascolto riflessivo (ripristino dell'input dell'utente, ma con una formulazione diversa) per dimostrare che gli skill comprendono le richieste dell'utente prima di passare al passo successivo. Ad esempio, se l'utente chiede "Voglio ordinare una pizza", l'abilità potrebbe rispondere con "OK, iniziamo il tuo ordine di pizza" prima di continuare con la domanda successiva (ad esempio "quale dimensione possiamo ottenere?"). Si noti anche che questo riconoscimento può essere espresso implicitamente e in un tono umano naturale ("cominciamo il tuo ordine di pizza") al contrario di qualcosa di più letterale e meno naturale (come "richiesta di ordinare la pizza confermata").
Si consideri anche la situazione in cui un utente ha immesso informazioni, ma la competenza ha bisogno di un po 'di tempo per eseguire qualcosa nel backend. Anziché attendere il completamento del processo prima di rispondere, è possibile confermare che la richiesta è in corso. Ad esempio, l'abilità potrebbe rispondere con quanto segue dopo che i dettagli di pagamento sono stati sottomessi, ma prima che siano stati elaborati: "OK, ho tutte le informazioni di pagamento. Consentitemi di verificare questi dettagli con la vostra banca."
Analogamente, utilizzare l'indicatore di digitazione per visualizzare quando l'assistente digitale sta lavorando a una risposta.
Colmare il divario esistente tra intelligenza artificiale e comprensione umana
Il cervello umano è di gran lunga il computer più lento ma migliore del mondo. E questo grazie alla sua capacità di rilevare e mantenere il contesto. Nonostante tutti i miglioramenti nell'AI conversazionale, sperimenterai situazioni in cui il chatbot non sarà in grado di determinare ciò che un utente desidera o a cosa servono le informazioni fornite da un utente. È qui che il design delle conversazioni deve intensificarsi per aiutare il chatbot e l'utente.
Considerare ad esempio i tre messaggi seguenti:
- "Blocca il mio diario dalle 10 alle 12 di domani"
- "Metti un indicatore nel mio calendario per domani alle 10 per 2 ore"
- "Per 2 ore domani, crea un ingresso nel mio programma alle 10 del mattino."
Tutti e tre i messaggi dicono la stessa cosa e il cervello umano ottiene immediatamente ciò che l'utente vuole, qual è la data dell'evento e quali sono l'ora di inizio e di fine.
L'intelligenza artificiale conversazionale, se ben addestrata, capirà che "blocca il mio diario", " imposta un indicatore nel mio calendario" e "crea una voce nel mio programma" hanno lo stesso significato, ovvero creare un evento nel calendario utente.
Tuttavia, per quanto riguarda le informazioni, l'AI conversazionale estrae "domani" come data dell'evento, le 10 del mattino e le 12 del pomeriggio come tempo e le 2 ore come durata. Di per sé potrebbe avere difficoltà a capire qual è l'ora di inizio di una riunione e qual è l'ora di fine, soprattutto quando l'ora di fine deve essere calcolata da una durata. E cosa significa "domani" dal punto di vista di un bot se si vive in Australia rispetto a (ad esempio) Jordan?
Per tutto ciò che non puoi gestire nella tua implementazione, il tuo design deve gestirlo, anche se significa ammettere che il bot non ha capito e quindi richiede nuovamente un'informazione.
Buone maniere
Un assistente digitale dovrebbe tenere conto del tempo e delle preoccupazioni dell'utente. Ecco alcuni aspetti delle buone maniere da integrare nel tuo assistente digitale.
Piccola conversazione
Non solo le piccole conversazioni sono una parte naturale della conversazione umana, ma le persone iniziano anche piccole conversazioni con gli assistenti digitali. Con gli assistenti digitali ha effettivamente usi pratici, come ad esempio:
- Verifica che si tratti di un bot dietro l'interfaccia di chat e non di un essere umano.
- Scopri cosa può fare l'assistente digitale.
- Che esprime frustrazione.
Ad esempio, se l'utente immette delle spiegazioni, questo potrebbe essere un indizio che l'assistente digitale può utilizzare per scusarsi, connettere l'utente con un agente umano o tentare in altro modo di risolvere il problema.
Per lo meno, dovresti essere in grado di gestire piccole conversazioni a livello di base. Se lo gestisci bene, fa apparire il tuo assistente digitale più intelligente, il che aiuta l'utente a fidarsi dell'assistente digitale.
Non assegnare colpa
Fai attenzione a non attribuire la colpa agli utenti (sia esplicitamente che implicitamente) quando inseriscono qualcosa in modo errato o fanno qualcos'altro per interrompere i progressi nella conversazione. In tali casi, il fraseggio dovrebbe concentrarsi su dove l'assistente digitale sta avendo difficoltà, non su ciò che l'utente ha fatto in modo errato.
Ad esempio, la risposta "Questo è un ID ordine errato" sottintende sottilmente che il problema è colpa dell'utente, che potrebbe causare irritazione o offesa (e potrebbe anche non essere vero). Una risposta migliore sarebbe "Non riuscivo a trovare un ordine con quel numero".
Uso dell'empatia
Puoi usare empatia e umorismo per rendere l'assistente digitale più personale, ma essere giudizioso e non esagerare. I costi delle incomprensioni sono molto maggiori di qualsiasi beneficio.
Ad esempio, se un utente di un assistente digitale per la registrazione di una conferenza entra in "Non sarò in grado di partecipare alla conferenza", quanto segue potrebbe sembrare un ragionevole inizio di una risposta: "Mi dispiace sentirlo". Ma se invece l'utente dice "Non sarò in grado di partecipare alla conferenza perché il mio abbagliante deve consegnare un bambino", la risposta non sembrerà affatto empatica!
Mantieni brevi interazioni
Per fare le cose, pensa al percorso più breve dall'inizio alla fine di una conversazione. Utilizzare qualsiasi opzione per saltare una sosta in una conversazione. Ecco due opzioni da considerare:
-
Utilizzare lo slotting di entità e guidare gli utenti su come includere alcune, se non tutte, le informazioni necessarie per un'attività nel primo messaggio.
Nei flussi di dialogo progettati in modalità Visual, i componenti Risposta comune e Risolvi entità estraggono automaticamente i valori di entità forniti dagli utenti nel messaggio iniziale e non richiedono i valori forniti.
Nei flussi di dialogo progettati in modalità YAML, è possibile utilizzare la proprietà
nlpResultVariable
nei componenti di input per abilitare questo slotting automatico. -
Consentire agli utenti di fornire informazioni aggiuntive quando richiesto. Ad esempio, in un bot di ordinazione della pizza, quando all'utente viene chiesto il formato della pizza, perché non accettare anche il tipo di pizza e i condimenti? L'estrazione delle informazioni fuori ordine può essere facilmente implementata con le entità del sacchetto composito.
Non progettare come se fosse un'app web
È probabile che il tuo team abbia esperienza nello sviluppo di applicazioni Web e quindi sarà anche probabile che applichi paradigmi di applicazioni Web all'assistente digitale, sia consapevolmente che inconsciamente. Cercate di evitare questo! Il punto di un assistente digitale è che un utente possa completare un'attività con il linguaggio naturale, non mettere un'app web in una finestra più piccola.
Ecco un paio di cose da considerare:
- Non utilizzare termini che sembrano nomi di campi di database in una risposta.
Ad esempio, invece di rispondere con "ID ordine non valido", dire "Non sono riuscito a trovare quel numero di ordine".
- Se l'utente sta facendo una richiesta e ci sono centinaia di possibili soluzioni, non rispondere con centinaia di righe di dati per farle scorrere. Pensa a come puoi aiutare l'utente a restringere la sua richiesta prima di presentargli un elenco più conciso.
Ad esempio, se si entra in una enoteca e si chiede una bottiglia di vino, il commerciante non nominerà ogni bottiglia che ha. Ti chiederà le tue preferenze (ad esempio rosso vs bianco, regioni e varie qualità del vino) prima di elencare alcune opzioni specifiche. La tua abilità può operare allo stesso modo.
- Trova modi per raccogliere informazioni per la conversazione senza interrogare l'utente su ogni dettaglio. Ad esempio, potresti avere un modo per determinare la posizione di un utente senza chiedere. Un altro esempio potrebbe essere quello di chiedere all'utente di inviare un'immagine (ad esempio una ricevuta) che fornisca le informazioni richieste.
Considera supporto multilingua
Vi siete mai chiesti perché le istruzioni di installazione per i prodotti importati dall'estero sono talvolta tradotte così male? Una probabile ragione è che è stato utilizzato un servizio di traduzione e il traduttore non aveva familiarità con il soggetto o il prodotto. Un'altra ragione è che certi modi di dire non esistono o sono espressi in modo diverso nella lingua da tradurre. Solo per darvi alcuni esempi di ciò che funzionerebbe negli Stati Uniti ma probabilmente non altrove:
- "sotto il tempo"
- "Appendere lì"
- "Attraverseremo quel ponte quando ci arriveremo"
- "Go Dutch"
- "Chiamalo un giorno"
Per garantire che le conversazioni definite per l'assistente digitale funzionino anche quando vengono tradotte, sono disponibili un paio di opzioni: annotare eventuali idiomi in un bundle di risorse per consentire al traduttore di conoscere il significato di un messaggio o non utilizzare affatto gli idom. Naturalmente, i servizi di traduzione automatica non ti serviranno bene quando traduci le risposte dei bot in una lingua straniera.
Lista di controllo per la progettazione conversazionale
- ☑ Assicurati che la progettazione delle conversazioni guidi gli utenti nell'utilizzo del chatbot, indipendentemente dalla loro esperienza attuale.
- ☑ Se possibile, verificare con le persone del gruppo di utenti target se l'utente tipo funziona o meno.
- ☑ Esamina i messaggi dei bot per trovare termini tecnici che non abbiano molto senso per gli utenti.
Ulteriori informazioni
- Video di Oracle Digital Assistant Design Camp: Il flusso di lavoro comprovato per la progettazione di conversazioni incentrate sull'uomo