Compartilhar via


Projetar a experiência do usuário

APLICA-SE A: SDK v4

Você pode criar bots com vários recursos, como texto, botões, imagens, cartões avançados exibidos em formato carrossel ou de lista e muito mais. No entanto, cada canal, como Facebook, Slack e assim por diante, controla como seus clientes de mensagens renderizam recursos. Mesmo quando vários canais forem compatíveis com um recurso, cada canal poderá renderizar o recurso de um jeito ligeiramente diferente. Em casos nos quais uma mensagem contém um ou mais recursos sem suporte nativo de canal, o canal pode tentar simplificar a renderização do conteúdo da mensagem como texto ou imagem estática, o que pode afetar consideravelmente a aparência da mensagem no cliente. Em alguns casos, talvez um canal não dê suporte algum a um recurso específico. Por exemplo, clientes do GroupMe não podem exibir um indicador de digitação.

Controles de usuário avançados

Controles de usuário avançados são controles de interface do usuário comuns, como botões, imagens, carrosséis e menus que o bot apresenta ao usuário e com os quais o usuário se envolve para informar suas escolhas e intenções. Um bot pode usar uma coleção de controles de interface do usuário para simular um aplicativo ou pode até mesmo ser executado incorporado em um aplicativo. Quando um bot é inserido em um aplicativo ou site, ele pode representar praticamente qualquer controle de interface do usuário, aproveitando as capacidades do aplicativo que o está hospedando.

Os desenvolvedores de aplicativos e sites confiaram nos controles de interface do usuário para permitir que os usuários interajam com seus aplicativos. Esses mesmos controles de interface do usuário também podem ser eficazes em bots. Por exemplo, os botões são uma ótima maneira de apresentar ao usuário uma escolha simples. Permitir que o usuário comunique "Hotéis" selecionando um botão rotulado Hotéis é mais fácil e rápido do que forçar o usuário a digitar "Hotéis ". Em dispositivos móveis, por exemplo, a seleção geralmente é preferida em vez da digitação.

Cartões

Cartões permitem apresentar aos usuários diversas mensagens visuais, de áudio e/ou selecionáveis e ajudam no fluxo da conversa. Se um usuário precisar selecionar um item de um conjunto fixo de itens, você poderá exibir um carrossel de cartões, cada um contendo uma imagem, uma descrição de texto e um botão de seleção única. Se um usuário tiver um conjunto de opções para um único item, você poderá apresentar uma única imagem menor e uma coleção de botões com várias opções para escolha. Ele pediu mais informações sobre um assunto? Os cartões podem fornecer informações detalhadas usando a saída de áudio ou de vídeo ou um recibo que forneça detalhes sobre sua experiência de compra. Há uma variedade incrivelmente ampla de usos de cartões para ajudar a guiar a conversa entre o usuário e o bot. O tipo de cartão usado será determinado pelas necessidades do aplicativo. Vamos dar uma olhada nos cartões, em suas ações e em alguns usos recomendados.

Os cartões do Serviço de Bot de IA do Azure são objetos programáveis que contêm coleções padronizadas de controles de usuário avançados que são reconhecidos em uma ampla variedade de canais. A tabela a seguir descreve a lista de cartões disponíveis e sugestões de melhor prática de uso para cada tipo de cartão.

Tipo de cartão Exemplo Descrição
AdaptiveCard Imagem de um Cartão Adaptável. Um formato de troca de cartão aberto renderizado como um objeto JSON. Normalmente usado para implantação entre canais de cartões. Os cartões se adaptam à aparência de cada canal de host.
AnimationCard Imagem de um cartão de animação. Um cartão que pode reproduzir GIFs animados ou vídeos curtos.
AudioCard Imagem de uma placa de áudio. Um cartão que pode reproduzir um arquivo de áudio.
HeroCard Imagem de um cartão de herói. Um cartão que contém uma única imagem grande, um ou mais botões e um texto. Normalmente usado para realçar visualmente uma seleção potencial do usuário.
ThumbnailCard Imagem de um cartão em miniatura. Um cartão que contém uma única imagem em miniatura, um ou mais botões e um texto. Normalmente usado para realçar visualmente os botões de uma seleção potencial do usuário.
ReceiptCard Imagem de um cartão de recibo. Um cartão que permite a um bot fornecer um recibo para o usuário. Normalmente, contém a lista de itens a serem incluídos no recibo, informações fiscais e de totais e outros textos.
SignInCard Imagem de um cartão de entrada. Um cartão que permite a um usuário iniciar sessão. Normalmente, ele contém texto e um ou mais botões que o usuário pode selecionar para iniciar o processo de iniciar sessão.
SuggestedAction Imagem de ações sugeridas renderizadas como botões em um bate-papo. Apresenta ao usuário um conjunto ações de cartões que representa uma escolha do usuário. Esse botão desaparece após a seleção de uma das ações sugeridas.
VideoCard Imagem de uma placa de vídeo. Um cartão que pode reproduzir vídeos. Normalmente usado para abrir uma URL e transmitir um vídeo disponível.
CardCarousel Imagem de um carrossel de cartões. Uma coleção horizontalmente rolável de cartões que permite ao usuário exibir facilmente uma série de opções possíveis de escolhas do usuário.

Os cartões permitem que você projete o bot uma vez para que ele funcione em uma variedade de canais. No entanto, nem todos os tipos de cartão são totalmente compatíveis com todos os canais disponíveis.

  • Encontre instruções detalhadas para a adição de cartões ao bot nestas seções Adicionar anexos de mídia de cartão avançado e Adicionar ações sugeridas às mensagens.

  • Para obter código de exemplo, confira os seguintes bots de exemplo no repositório Amostras de Bot Framework.

    Amostra Nome Descrição
    6 Usando cartões Demonstra o uso de todos os tipos de cartão.
    7 Cartões Adaptáveis Demonstra o uso de cartões adaptáveis.
    8 Ações sugeridas Demonstra o uso de ações sugeridas.
    15 Anexos Demonstra como aceitar anexos fornecidos pelo usuário.

Ao projetar o bot, não ignore automaticamente elementos comuns de interface do usuário como não sendo inteligentes o suficiente. Conforme abordado em experiência do usuário em conversação, o bot deve ser projetado para resolver os problemas do usuário da maneira mais eficaz, rápida e fácil possível. Evite a tentação de começar incorporando o reconhecimento de linguagem natural, pois ele costuma ser desnecessário e introduz uma complexidade não justificada.

Dica

Comece usando os controles mínimos de interface do usuário que permitam ao bot resolver o problema do usuário e adicione outros elementos posteriormente, caso esses controles não sejam mais suficientes.

Reconhecimento vocal em idioma natural e de texto

Um bot pode aceitar uma entrada de texto dos usuários e tentar analisar essa entrada usando a correspondência de expressão regular ou APIs de reconhecimento de linguagem natural, como o LUIS. Dependendo do tipo de entrada fornecida pelo usuário, o reconhecimento vocal em idioma natural pode ou não ser uma boa solução.

Em alguns casos, um bot pode fazer uma pergunta específica ao usuário. Por exemplo, se o bot pergunta, "Qual é o seu nome?", o usuário pode responder com um texto que especifique apenas o nome, "Julio", ou com uma frase, "Meu nome é Julio".

Fazer perguntas específicas reduz o escopo das possíveis respostas que o bot pode razoavelmente receber, o que reduz a complexidade da lógica necessária para analisar e compreender a resposta. Por exemplo, considere a seguinte pergunta ampla em aberto: "Como você está se sentindo?". É uma tarefa muito complexa compreender as muitas permutações possíveis de respostas potenciais a uma pergunta como essa.

Por outro lado, perguntas específicas, como "Você está sentindo dor? sim/não" e "Em que local está sentindo dor? peito/cabeça/braço/perna", provavelmente gerarão respostas mais específicas que um bot pode analisar e compreender, sem a necessidade de implementar o reconhecimento vocal em idioma natural.

Dica

Sempre que possível, faça perguntas específicas que não exigirão capacidades de reconhecimento de linguagem natural ao analisar a resposta. Isso simplificará o bot e aumentará o sucesso de que o bot compreenda o usuário.

Em outros casos, um usuário pode digitar um comando específico. Por exemplo, um bot de DevOps que permite aos desenvolvedores gerenciar máquinas virtuais pode ser criado para aceitar comandos específicos, como "/STOP VM XYZ" ou "/START VM XYZ". Projetar um bot para aceitar comandos específicos como esses gera uma boa experiência do usuário, pois a sintaxe é fácil de aprender e o resultado esperado de cada comando é claro. Além disso, o bot não exigirá capacidade de reconhecimento de linguagem natural, pois a entrada de usuário pode ser analisada com facilidade usando expressões regulares.

Dica

Projetar um bot para exigir comandos específicos do usuário geralmente oferece uma boa experiência do usuário, ao mesmo tempo que elimina a necessidade da funcionalidade de reconhecimento vocal em idioma natural.

No caso de um bot de base de informações ou de um bot de perguntas e respostas, um usuário pode fazer perguntas gerais. Por exemplo, imagine um bot que possa responder a perguntas com base no conteúdo de milhares de documentos. Os Serviços de IA do Azure e o Azure Search são tecnologias que foram criadas especificamente para esse tipo de cenário. Para obter mais informações, confira Criar bots de conhecimento e Reconhecimento de linguagem.

Dica

Se estiver criando um bot que responderá perguntas com base em dados estruturados ou não estruturados de bancos de dados, páginas da Web ou documentos, considere o uso de tecnologias que foram projetadas especificamente para abordar esse cenário, em vez de tentar resolver o problema com o reconhecimento de linguagem natural.

Em outros cenários, um usuário pode estar digitando solicitações simples com base em linguagem natural. Por exemplo, um usuário pode digitar "Quero uma pizza de pepperoni" ou "Há algum restaurante vegetariano aberto agora a 3 milhas de minha casa?". APIs de reconhecimento de linguagem natural são uma excelente opção para cenários como esse.

Usando as APIs, o bot pode extrair os principais componentes do texto do usuário para identificar a intenção do usuário. Ao implementar funcionalidades de reconhecimento vocal em idioma natural no bot, defina expectativas realistas para o nível de detalhes que os usuários provavelmente fornecerão na entrada.

Dica

Ao criar modelos de linguagem natural, não presuma que os usuários fornecerão todas as informações necessárias na consulta inicial. Projete o bot para solicitar especificamente as informações necessárias, guiando o usuário para fornecer essas informações fazendo uma série de perguntas, se necessário.

Fala

Um bot pode usar a entrada e a saída de fala para se comunicar com os usuários. Nos casos em que um bot foi projetado para dar suporte a dispositivos que não têm teclado ou monitor, a fala é o único meio de se comunicar com o usuário.

Escolhendo entre controles de usuário avançados, texto, idioma natural e fala

Assim como as pessoas se comunicam entre si usando uma combinação de gestos, vozes e símbolos, os bots podem se comunicar com os usuários usando uma combinação de controles de usuário avançados, texto (às vezes, incluindo o idioma natural) e fala. Esses métodos de comunicação podem ser usados em conjunto; você não precisa escolher um em detrimento do outro.

Por exemplo, imagine um "bot de culinária" que ajuda os usuários com receitas, em que o bot pode fornecer instruções reproduzindo um vídeo ou exibindo uma série de imagens para explicar o que precisa ser feito. Alguns usuários talvez prefiram virar páginas da receita ou fazer perguntas ao bot usando a fala enquanto preparam uma receita. Outros podem preferir tocar na tela de um dispositivo em vez de interagir com o bot por meio da fala. Ao projetar o bot, incorpore os elementos da experiência do usuário que dão suporte às maneiras que os usuários provavelmente vão preferir interagir com o bot, considerando os casos de uso específicos para os quais se destina o suporte.