Design de Conversa
Aqui estão algumas práticas recomendadas de alto nível para projetar conversas em assistentes digitais.
Os usuários esperam implicitamente que os aplicativos de software tenham qualidades humanas. Quando um aplicativo é considerado "amigável", ele geralmente exibe características humanas, como cortesia e senso comum.
Com interfaces de conversa (assistentes digitais), as expectativas são ainda maiores. Como os assistentes digitais são projetados em torno do conceito de conversa humana, é particularmente importante projetá-lo bem para que ele atenda às expectativas dos usuários, conscientes e inconscientes.
O design de conversação remove os aspectos técnicos do modelo de interação de uma tarefa ou processo subjacente e o substitui por uma conversa de som natural que os usuários acham fácil de entender e envolver.
Um bom design de conversação visa a eficiência, tem uma compreensão do contexto, reflete de volta para o usuário, é emocionalmente envolvente e constrói ótimos diálogos. Como engenheiro, você pode pensar que um bom design de conversa é fácil de alcançar, mas tenha em mente que nem todo grande cantor sabe escrever boas letras. E nem todos os autores de boas letras podem cantar.
Seu assistente digital não é humano, mas se ele usar técnicas de conversa e dicas e demonstrar consideração humana, poderá fazer as conversas parecerem mais naturais (e simpáticas) e minimizar a chance de irritar os usuários. Essas qualidades em um assistente digital podem dar aos usuários a confiança de que ele é capaz de lidar com as reais preocupações deles.
Estas são algumas técnicas de conversa que podem ajudar a tornar seu assistente digital mais atraente para os usuários:
Orientar Usuários
Uma parte básica, mas importante, do design de um assistente digital é garantir que os usuários possam descobrir facilmente como usá-lo de forma eficaz.
Boas-vindas
Para acertar em cheio com seus usuários, pense bem no modo como seu assistente digital cumprimenta os usuários. Faça o seguinte:
- Forneça uma apresentação positiva e acolhedora.
- Indique o que o assistente digital pode fazer e/ou o que se espera do usuário.
- Varie as saudações, especialmente dos assistentes digitais muito utilizados.
Os assistentes digitais vêm com uma implementação de boas-vindas padrão, mas você também pode fornecer sua própria implementação.
Ajuda
Uma parte importante de qualquer assistente digital é ser capaz de dizer aos usuários o que ele pode fazer e ajudar a liberá-los se a conversa não estiver indo como eles esperam. Faça o seguinte:
- Certifique-se de que o assistente digital possa tratar uma solicitação de ajuda em qualquer ponto da conversa, seja uma solicitação explícita de ajuda ou uma pergunta mais sutil como "o que você pode fazer?"
- Como você faz quando está dando boas-vindas aos usuários, indique o que o assistente digital pode fazer e/ou o que se espera como reação do usuário.
Os assistentes digitais vêm com uma implementação de ajuda padrão, mas talvez você queira projetar a experiência da ajuda você mesmo.
Permitindo que os Usuários Saiam
Forçar um usuário a concluir uma conversa que ele iniciou de forma errada faz com que ele tenha uma experiência ruim. Quando um usuário está em uma conversa, ele sempre deve ter uma maneira de sair, seja porque a conversa tomou um rumo que ele não quer ou porque ele simplesmente não deseja concluí-la nesse momento.
Existem algumas maneiras de fazer isso, como estas: Por exemplo, você pode garantir que todas as listas de escolhas tenham uma opção para sair da conversa atual. Ou você pode usar a intenção de saída incorporada do assistente digital para tratar explicitamente quaisquer solicitações específicas para encerrar a conversa atual.
Dicas e Dicas
Dependendo da complexidade das suas habilidades e do seu assistente digital, pode ser útil fornecer várias formas de orientação e dicas visuais para sugerir aos usuários o que eles podem fazer. As formas podem ser dos seguintes tipos:
- Dicas dentro de mensagens (como "... ou apenas me diga para sair desta conversa se você não quiser continuar").
- Informações que indicam ao usuário o que ele pode esperar depois de concluir uma ação.
- Botões das ações mais comuns.
- Lembretes intercalados por toda a conversa descrevendo, por exemplo, como iniciar um menu, sair de uma conversa, pedir ajuda e falar com um agente.
Em alguns canais, você também pode aproveitar os recursos específicos da plataforma de mensagens para fornecer botões de ações comuns, como sair e exibir o menu.
Mostrar Respostas Rápidas como Botões de Ação
Ao solicitar informações aos usuários, você pode antecipar a escolha do usuário com base no que as pessoas geralmente selecionam.
Por exemplo, se você estiver pedindo uma data para uma entrada de calendário, as opções comuns serão "hoje" ou "amanhã". Portanto, abaixo do prompt, você pode adicionar dois botões que dizem Hoje e Amanhã. Quando um usuário seleciona um dos dois botões ou insere o rótulo de um dos botões, a data atual ou a data de amanhã é definida como a variável subjacente.
Outro exemplo é o caso em que o bot precisa de um endereço de entrega. Se houver um endereço residencial no arquivo, você poderá solicitar um endereço de entrega e também incluir um botão de entrega residencial.
Ao usar respostas rápidas, certifique-se de que os usuários entendam que os botões não são sua única escolha e que o botão pode ser acionado por uma mensagem. Lembre-se sempre que a conversa também significa fala e que os usuários que operam o chatbot usando sua voz não terão a oportunidade de pressionar um botão. Provavelmente, eles vão mencionar o rótulo do botão.
Garanta uma Compreensão Mútua
Para que as conversas funcionem bem, você precisa ter certeza de que o assistente digital entenda os usuários e que o usuário entenda o assistente digital. Estas são algumas técnicas que ajudam a esse respeito.
Usar Idioma Simples
Nenhum usuário fala como seu banco de dados de produtos foi projetado. Certifique-se de que seu bot esteja usando o idioma do seu público-alvo para o qual a persona que você definiu deve guiá-lo. Por exemplo :
-
"conta do usuário" em vez de "ID do usuário"
-
"onde posso entregar isso" em vez de "endereço de envio"
-
"Tentei meu melhor, mas não consegui encontrar o que estava procurando" em vez de "a consulta não retornou um resultado"
Além disso, você pode tornar as mensagens menos robóticas, fornecendo contexto e orientação.
Então, em vez de "Qual é o ID do seu pedido?", você poderia fornecer uma mensagem mais útil, como "Posso ajudá-lo a encontrar seu pedido. Se você pode me dizer o seu número de ordem, isso seria ótimo. Se não, nenhum problema. Eu também posso pesquisar por produto ou data."
Não espere que os usuários conheçam as palavras mágicas
Imagine um bot de vendas que os representantes de vendas pudessem usar para solicitar uma representação gráfica da receita gerada e como essa receita atendia às metas previstas.
Os gráficos podem ser feitos com muitas funções, incluindo que tipo de gráfico adicionar, se adicionar rótulos ou não, quantos eixos y mostrar. Um assistente digital em que o representante de vendas tem que solicitar suas estatísticas dizendo coisas como "Mostrar minhas vendas para Q2 / 2021 como uma torta com no_label double_y_axis em linear_plot" não funcionará na prática.
Deixe as opções claras, mantenha-as conversacionais e use a linguagem do seu público-alvo. Se você oferecer funis, gráficos de Gantt, gráficos de dispersão, gráficos de bolhas e gráficos de Pareto, mantenha essas informações para si mesmo e apresente-as de maneira diferente para o usuário. Aqui estão alguns exemplos do que um usuário desse bot teria maior probabilidade de perguntar:
-
"Mostre-me uma visão geral das minhas vendas para Q2 / 2021"
-
"Mostre-me minhas vendas para Q2 / 2021 em comparação com o ano passado"
Para ambas as consultas, a resposta poderia ser renderizada com diferentes tipos de gráficos sem que o usuário tivesse que entender as palavras mágicas que lhes dão o que eles querem. Ele não apenas torna seu assistente digital intuitivo de uso, como também reduz a escolha, o que é bom ter em mente que as tarefas de conversação devem ser curtas, como discutimos na próxima seção.
Dê Feedback na Conversa
Certifique-se de que seu bot não seja projetado como um jogo de fuga e que você forneça indicadores, feedback, confirmação, sinalização e ajuda suficientes para que os usuários sempre entendam o que é esperado deles agora, o que vem a seguir e como se livrar deles. Estes são alguns exemplos dessas técnicas:
-
Confirmação: "OK. Eu tenho o seu pedido."
-
Sinalização: "OK. Tenho seu pedido. Em seguida, preciso saber para onde enviar isso."
-
Prompt: "OK. Tenho seu pedido. Em seguida, preciso saber para onde enviar isso. Então, deixe-me saber o endereço para o qual devo entregá-lo."
-
Ajuda: "OK. Tenho seu pedido. Em seguida, preciso saber para onde enviar isso. Então, deixe-me saber o endereço para o qual devo entregá-lo ou use o botão abaixo para enviar para seu endereço residencial.
Pode haver situações em que o usuário não sabe quais informações fornecer ou talvez tenha perdido o interesse em concluir uma tarefa. Uma maneira de ajudar nesses casos é exibir controles adicionais (como botões) para que o usuário cancele uma tarefa ou navegue até um estado de ajuda. Além disso, usando a definição maxPrompts
em componentes de entrada, você pode até automatizar a navegação para um estado de ajuda quando o usuário fornecer informações incorretas várias vezes.
Desambiguar Entrada do Usuário
Não tenha receio de fazer com que sua habilidade confirme o entendimento da entrada do usuário. A linguagem pode ser ambígua, mesmo em pessoa.
Por exemplo, se for quinta-feira e um usuário disser "Quero marcar uma consulta no próximo sábado", você poderá interpretar essa data como sendo dois ou nove dias depois. Nesse caso, você gostaria que sua habilidade confirmasse a data, talvez com a frase "OK, só para ter certeza de que eu entendi corretamente, é neste sábado dia 10 ou no outro sábado dia 17?"
Nos fluxos de caixas de diálogo, recomendamos que você use entidades como tipos de variáveis ao coletar a entrada do usuário. O uso de entidades como tipos de variáveis valida a entrada do usuário e detecta automaticamente a ambiguidade, o que significa que tudo o que você precisa fazer é encontrar o texto certo ao solicitar aos usuários.
Fornecer Prompts Alternativos
Como mencionado anteriormente, é importante escrever mensagens em um estilo conversacional. Mas o que acontece se essa mensagem precisar ser repetida porque o usuário não respondeu corretamente? Por exemplo :
"Frio. Então, me diga para onde enviar isso"
"Frio. Então, me diga para onde enviar isso"
"Frio. Então, me diga para onde enviar isso"
Mesmo as mensagens que são escritas conversacionalmente soarão robóticas e desinteressantes se forem repetidas. Portanto, você deve escrever várias versões de cada prompt para que um usuário veja texto diferente se for solicitado novamente (ou se ela repetir a conversa).
É possível usar vários prompts definidos nas entidades para mostrar prompts alternados automaticamente. Portanto, se as informações do usuário forem validadas por uma variável de tipo de entidade, você poderá usar a propriedade de prompt da entidade para definir quantos prompts desejar. Usando o componente Resolver Entidades, tudo o que você precisa fazer é associar a variável a ele.
Divulgar Gradualmente Informações Adicionais
Ter prompts alternados é ótimo. Mas se um usuário não entender, a reformulação o tornará apenas um pouco melhor. Aqui você quer divulgar progressivamente mais informações ou escalar quando necessário.
- Bot: "Frio. Então, me diga para onde enviar isso"
- Usuário: "para mim"
- Bot: "Me desculpe, mas 'para mim' não parece funcionar para mim. Se você pode me dar um nome de rua, um número de casa e um nome de cidade, então eu posso enviar isso para você."
- Usuário: "enviar para mim"
- Bot: "Tentou, isso também não funcionou para mim. Eu realmente gostaria de ajudá-lo aqui. Talvez você queira falar com um colega meu. Se assim for, peça-me para conectá-lo a um agente humano. Ou você me dá um endereço para o qual posso enviar isso."
Nesse conjunto de prompts, observe como as mensagens revelam gradualmente mais informações para ajudar o usuário. O uso de entidades para definir os prompts facilita a implementação dessa conversa. Basta adicionar um número de sequência aos prompts.
O número de sequência de um prompt indica quando ele é exibido. O exemplo acima contém mensagens com números de sequência de 1 a 3. Se, em seguida, você configurar a propriedade maxPrompts
do componente Resolver Entidades para 3
, uma terceira tentativa de entrada do usuário com falha acionará a navegação, por exemplo, para uma ajuda ou um estado de agente humano.
Os prompts com o mesmo número de sequência mostram comportamento alternado, conforme descrito na seção anterior. Dessa forma, você pode conseguir os dois, expondo gradualmente informações adicionais e exibindo prompts alternados.
Várias Respostas e Divulgação Progressiva
Tenha várias respostas para vários pontos da conversa. Uma variedade de respostas aumenta a credibilidade da habilidade com o usuário (não dá a impressão de estar presa a uma repetição). Também é possível usá-las para divulgar mais informações de forma progressiva para ajudar a liberar um usuário.
Por exemplo, se o usuário fornecer uma entrada inválida para a pergunta "Que tamanho você gostaria?", você poderá seguir essa solicitação com algo como "OK, vamos tentar novamente encontrar um tamanho para você. Selecione pequeno, médio ou grande."
Confirmação e Escuta Reflexiva
As respostas da sua habilidade devem usar a escuta reflexiva (a reafirmação da entrada do usuário, mas com outras palavras) para demonstrar que a habilidade entende as solicitações do usuário antes de passar para a próxima etapa. Por exemplo, se o usuário disser “Gostaria de pedir uma pizza”, a habilidade poderá responder com “OK, vamos começar seu pedido de pizza” antes de continuar com a próxima pergunta (como "qual seria o tamanho da pizza?"). Observe também que essa confirmação pode ser expressa implicitamente e em um tom humano natural ("vamos começar seu pedido de pizza") e não algo mais literal e menos natural (como "solicitação de pedido de pizza confirmada").
Considere também a situação em que um usuário digitou informações, mas a habilidade precisa de um certo tempo para executar algo no backend. Em vez de aguardar a conclusão do processo antes de responder, o ideal seria confirmar que a solicitação está em andamento. Por exemplo, a habilidade poderia responder com o seguinte após o envio dos detalhes do pagamento, mas antes do processamento: “OK, eu tenho todas as informações do pagamento. Deixe-me ver esses detalhes com seu banco.”
Da mesma forma, use o indicador de digitação para mostrar quando o assistente digital está trabalhando em uma resposta.
Feche a lacuna existente entre IA e compreensão humana
O cérebro humano é de longe o computador mais lento, mas melhor do mundo. E isso é devido à sua capacidade de detectar e manter o contexto. Apesar de todas as melhorias na IA de conversação, você experimentará situações em que o chatbot não será capaz de determinar o que um usuário quer ou quais são as informações fornecidas por um usuário. É aqui que seu design de conversa precisa dar um passo adiante para ajudar seu chatbot e o usuário.
Por exemplo, considere as três mensagens a seguir:
- "Bloquear meu diário das 10h às 12h amanhã"
- "Definir um marcador no meu calendário para amanhã às 10h por 2 horas"
- "por 2 horas amanhã, crie uma entrada na minha agenda às 10h."
Todas as três mensagens dizem a mesma coisa e o cérebro humano imediatamente recebe o que o usuário quer, qual é a data do evento e quais são os horários de início e término.
A IA conversacional, quando bem treinada, entenderá que "bloquear meu diário", "definir um marcador no meu calendário" e "criar uma entrada na minha agenda" têm o mesmo significado, que é criar um evento no calendário do usuário.
No entanto, no que diz respeito à informação, a IA conversacional extrai "amanhã" como a data do evento, 10h e 12h como hora e 2 horas como duração. Por si só, pode ter problemas para entender qual é a hora de início de uma reunião e qual é a hora de término, especialmente quando a hora de término precisa ser calculada a partir de uma duração. E o que significa "amanhã" da perspectiva de um bot se você mora na Austrália em vez de (por exemplo) Jordan?
Por qualquer coisa que você não possa lidar em sua implementação, seu design precisa lidar com isso, mesmo que isso signifique admitir que o bot não entendeu e, portanto, solicita novamente uma informação.
Boas maneiras
Um assistente digital deve mostrar consideração pelo tempo e pelas preocupações do usuário. Aqui estão alguns aspectos de boas maneiras de incorporar ao seu assistente digital.
Conversa Casual
A conversa casual não é apenas parte natural da conversa humana; as pessoas também iniciam conversas casuais com assistentes digitais. Com assistentes digitais, na verdade ela tem usos práticos, como:
- Verificar se é um bot por trás da interface de bate-papo e não uma pessoa.
- Descobrir o que o assistente digital pode fazer.
- Expressar frustração.
Por exemplo, se o usuário digitar um palavrão, essa poderá ser uma dica que o assistente digital pode usar para pedir desculpas, conectar o usuário com um agente humano ou tentar remediar o problema.
No mínimo, você deverá conseguir identificar conversa casual em um nível básico. Se você identificar isso bem, fará com que seu assistente digital pareça mais inteligente, o que ajuda o usuário a confiar nele.
Não Atribuir Culpa
Tome cuidado para não culpar os usuários (seja de forma explícita ou implícita) ao digitar algo incorretamente ou fazer algo mais para interromper o andamento da conversa. Nesses casos, as frases devem focar em onde o assistente digital está tendo dificuldades, não no que o usuário fez incorretamente.
Por exemplo, a resposta "Este é um ID de Pedido incorreto" implica subitamente que o problema é a falha do usuário, o que pode causar irritação ou ofendê-lo (e pode até mesmo não ser verdade). Uma resposta melhor seria "Não consegui encontrar um pedido com esse número".
Uso de Empatia
Você pode usar empatia e humor para tornar o assistente digital mais pessoal, mas seja criterioso e não exagere. Os custos dos mal-entendidos são muito maiores do que qualquer benefício.
Por exemplo, se um usuário de um assistente digital de registro de conferência digitar "Eu não poderei ir à conferência", esta resposta poderá parecer um início razoável: "Lamento ouvir isso". Mas se o usuário, em vez disso, disser: "Eu não conseguirei ir à conferência porque minha filha está prestes a ter um bebê", a resposta não vai parecer empática!
Manter Interações Curtas
Para fazer as coisas, pense no caminho mais curto do início ao fim de uma conversa. Use quaisquer opções que você tenha para pular uma parada em uma conversa. Aqui estão duas opções a serem consideradas:
-
Use o slot de entidade e oriente os usuários sobre como incluir algumas, se não todas, as informações necessárias para uma tarefa na primeira mensagem.
Nos fluxos de caixas de diálogo projetados no modo Visual, os componentes Resposta Comum e Resolver Entidade extraem automaticamente os valores de entidade fornecidos pelos usuários em sua mensagem inicial e não solicitam esses valores fornecidos.
Nos fluxos de caixas de diálogo projetados no modo YAML, você pode usar a propriedade
nlpResultVariable
nos componentes de entrada para ativar esse slot automático. -
Permita que os usuários forneçam informações adicionais quando solicitado. Por exemplo, em um bot de pedidos de pizza, quando é solicitado ao usuário o tamanho da pizza, por que não aceitar também o tipo de pizza e as coberturas? A extração de informações fora de ordem pode ser facilmente implementada com as entidades compostas.
Não Projetar Como Se Fosse um Aplicativo da Web
É provável que sua equipe tenha experiência em desenvolver aplicativos web e, assim, também provavelmente aplicará paradigmas de aplicativos web ao assistente digital, seja de forma consciente ou subconsciente. Tente evitar isso! O ponto de um assistente digital é que um usuário conclua uma tarefa com linguagem natural, não colocar um aplicativo Web em uma janela menor.
Aqui estão algumas questões a serem consideradas:
- Não use termos que soem como nomes de campo de banco de dados em uma resposta.
Por exemplo, em vez de responder com "ID de Pedido inválido", diga algo como "Não consegui encontrar esse número de pedido".
- Se o usuário estiver fazendo uma solicitação e houver centenas de soluções possíveis, não responda com centenas de linhas de dados para que eles verifiquem. Considere as maneiras como você pode ajudar o usuário a restringir a solicitação dele antes de apresentar a ele uma lista mais concisa.
Por exemplo, se você entrar numa loja de vinho e pedir uma garrafa de vinho, a atendente não vai falar o nome de cada garrafa que ela tem. Ela perguntará suas preferências (por exemplo, tinto ou branco, regiões e várias qualidades do vinho) antes de listar algumas opções específicas. Sua habilidade pode agir da mesma maneira.
- Encontre maneiras de coletar informações para a conversa sem consultar o usuário sobre cada detalhe. Por exemplo, você pode ter uma maneira de determinar o local de um usuário sem perguntar. Outro exemplo poderia ser solicitar que o usuário envie uma imagem (como um recibo) que forneça as informações necessárias.
Considere o Suporte a Vários Idiomas
Você já se perguntou por que as instruções de instalação para produtos importados do exterior às vezes são tão mal traduzidas? Uma razão provável é que um serviço de tradução foi usado e o tradutor não estava familiarizado com o assunto ou produto. Outra razão é que certas expressões idiomáticas não existem ou são expressas de forma diferente no idioma a ser traduzido. Apenas para dar alguns exemplos do que funcionaria nos Estados Unidos, mas provavelmente não em outro lugar:
- "sob o tempo"
- "ganhar lá dentro"
- "Vamos atravessar essa ponte quando chegarmos a ela"
- "vai holandês"
- "Chame isso um dia"
Para garantir que as conversas definidas para o seu assistente digital também funcionem quando traduzidas, você tem algumas opções: anotar qualquer idioma em um pacote de recursos para que o tradutor saiba o significado de uma mensagem ou não usar idoms. Naturalmente, os serviços de tradução automática não o atenderão bem ao traduzir suas respostas de bot para uma língua estrangeira.
Lista de Verificação para Design Conversacional
- ☑ Certifique-se de que seu design de conversa oriente os usuários no uso do chatbot, independentemente de sua experiência atual.
- ☑ Se puder, verifique com pessoas do grupo de usuários de destino se a persona está funcionando ou não.
- ☑ Revise suas mensagens de bot para termos técnicos que não fazem muito sentido para os usuários.
Saiba Mais
- Vídeo do Oracle Digital Assistant Design Camp: O fluxo de trabalho comprovado para criar conversas centradas no ser humano