Projete 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 ricos exibidos em formato carrossel ou lista e muito mais. No entanto, cada canal, como Facebook, Slack e assim por diante, controla como seus clientes de mensagens processam recursos. Mesmo quando vários canais suportam um recurso, cada canal pode renderizar o recurso de uma maneira ligeiramente diferente. Nos casos em que uma mensagem contém recursos que um canal não suporta nativamente, o canal pode tentar renderizar o conteúdo da mensagem como texto ou como uma imagem estática, o que pode afetar significativamente a aparência da mensagem no cliente. Em alguns casos, um canal pode não suportar um recurso específico. Por exemplo, os 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 comuns da interface do usuário, como botões, imagens, carrosséis e menus que o bot apresenta ao usuário e o usuário se envolve para comunicar a escolha e a intenção. Um bot pode usar uma coleção de controles de interface do usuário para imitar um aplicativo ou até mesmo executar incorporado em um aplicativo. Quando um bot é incorporado em um aplicativo ou site, ele pode representar praticamente qualquer controle de interface do usuário, usando os recursos do aplicativo que o hospeda.

Os desenvolvedores de aplicativos e sites confiaram nos controles da 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 chamado 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 é muitas vezes preferível à digitação.

Cartões

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

Os cartões do Serviço de Bot do Azure AI 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 práticas recomendadas de uso para cada tipo de cartão.

Tipo de cartão Exemplo Descrição
Cartão Adaptativo Image of an Adaptive Card. 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 adaptam-se à aparência de cada canal anfitrião.
AnimationCard Image of an animation card. Um cartão que pode reproduzir GIFs animados ou vídeos curtos.
Placa de áudio Image of an audio card. Um cartão que pode reproduzir um arquivo de áudio.
Cartão HeroCard Image of a hero card. Um cartão que contém uma única imagem grande, um ou mais botões e texto. Normalmente usado para destacar visualmente uma seleção de usuário em potencial.
ThumbnailCard Image of a thumbnail card. Um cartão que contém uma única imagem em miniatura, um ou mais botões e texto. Normalmente usado para destacar visualmente os botões para uma seleção de usuário em potencial.
Cartão de Recibo Image of a receipt card. Um cartão que permite que um bot forneça um recibo ao usuário. Normalmente, contém a lista de itens a incluir no recibo, informações fiscais e totais e outros textos.
SignInCard Image of a sign-in card. Um cartão que permite a um utilizador iniciar sessão. Ele geralmente contém texto e um ou mais botões que o usuário pode usar para iniciar um processo de entrada.
Ação sugerida Image of suggested actions rendered as buttons within a chat. Apresenta ao usuário um conjunto de ações de cartão que representam uma escolha do usuário. Os botões desaparecem quando qualquer uma das ações sugeridas é selecionada.
Placa de vídeo Image of a video card. Um cartão que pode reproduzir vídeos. Normalmente usado para abrir um URL e transmitir um vídeo disponível.
Carrossel de Cartão Image of a card carousel. Uma coleção de cartões rolável horizontalmente que permite ao usuário visualizar facilmente uma série de opções possíveis do usuário.

Os cartões permitem que você projete seu bot uma vez e faça com que ele funcione em vários canais. No entanto, nem todos os tipos de cartão são totalmente suportados em todos os canais disponíveis.

  • Instruções detalhadas para adicionar cartões ao seu bot podem ser encontradas em Adicionar anexos de mídia de cartão avançado e Adicionar ações sugeridas às mensagens.

  • Para obter o código de exemplo, consulte os seguintes bots de exemplo no repositório Bot Framework Samples .

    Exemplo Name Description
    6 Utilização de cartões Demonstra o uso de todos os tipos de cartão.
    7 Cartões Adaptativos 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 seu bot, não descarte automaticamente os elementos comuns da interface do usuário como não sendo inteligentes o suficiente. Conforme discutido em Experiência do usuário conversacional, seu bot deve ser projetado para resolver o problema do usuário da melhor maneira, mais rápida e mais fácil possível. Evite a tentação de começar por incorporar a compreensão da linguagem natural, pois muitas vezes é desnecessária e introduz complexidade injustificada.

Gorjeta

Comece usando os controles mínimos da interface do usuário que permitem que o bot resolva o problema do usuário e adicione outros elementos posteriormente se esses controles não forem mais suficientes.

Compreensão de texto e linguagem natural

Um bot pode aceitar a entrada de texto dos usuários e tentar analisar essa entrada usando a correspondência de expressão regular ou APIs de compreensão de linguagem natural. Dependendo do tipo de entrada que o usuário fornece, a compreensão da linguagem 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 perguntar: "Qual é o seu nome?", o usuário pode responder com texto que especifica apenas o nome, "John", ou com uma frase, "My name is John".

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

Em contrapartida, perguntas específicas como "Você está sentindo dor? sim/não" e "Onde você está sentindo dor? peito/cabeça/braço/perna" provavelmente daria respostas mais específicas que um bot pode analisar e entender sem precisar implementar a compreensão de linguagem natural.

Gorjeta

Sempre que possível, faça perguntas específicas que não exijam recursos de compreensão de linguagem natural para analisar a resposta. Isso simplificará seu bot e aumentará o sucesso que seu bot entenderá o usuário.

Em outros casos, um usuário pode digitar um comando específico. Por exemplo, um bot DevOps que permite aos desenvolvedores gerenciar máquinas virtuais pode ser projetado para aceitar comandos específicos, como "/STOP VM XYZ" ou "/START VM XYZ". Projetar um bot para aceitar comandos específicos como este proporciona uma boa experiência ao 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á recursos de compreensão de linguagem natural, uma vez que a entrada do usuário pode ser facilmente analisada usando expressões regulares.

Gorjeta

Projetar um bot para exigir comandos específicos do usuário muitas vezes pode fornecer uma boa experiência do usuário e, ao mesmo tempo, eliminar a necessidade de capacidade de compreensão de linguagem natural.

Para uma base de dados de conhecimento ou bot de perguntas e respostas, um usuário pode fazer perguntas gerais. Por exemplo, imagine um bot que pode responder a perguntas com base no conteúdo de milhares de documentos. Os serviços de IA do Azure e a Pesquisa do Azure são tecnologias projetadas especificamente para esse tipo de cenário. Para obter mais informações, consulte Design knowledge bots e Language understanding.

Gorjeta

Se você estiver projetando um bot que responderá a 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 projetadas especificamente para lidar com esse cenário, em vez de tentar resolver o problema com a compreensão de linguagem natural.

Em outros cenários, um usuário pode digitar solicitações simples com base em linguagem natural. Por exemplo, um usuário pode digitar "Eu quero uma pizza de calabresa" ou "Há algum restaurante vegetariano dentro de 3 milhas da minha casa aberta agora?". As APIs de compreensão de linguagem natural são uma ótima opção para cenários como este.

Usando as APIs, seu bot pode extrair os principais componentes do texto do usuário para identificar a intenção do usuário. Ao implementar recursos de compreensão de linguagem natural em seu bot, defina expectativas realistas para o nível de detalhe que os usuários provavelmente fornecerão em suas entradas.

Gorjeta

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

Voz

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

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

Assim como as pessoas se comunicam entre si usando uma combinação de gestos, voz 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 linguagem natural) e fala. Estes métodos de comunicação podem ser utilizados 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, onde 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 podem preferir virar páginas da receita ou fazer perguntas ao bot usando a fala enquanto estão montando uma receita. Outros podem preferir tocar na tela de um dispositivo em vez de interagir com o bot por meio da fala. Ao projetar seu bot, incorpore os elementos de UX que suportam as maneiras pelas quais os usuários provavelmente preferirão interagir com seu bot, dados os casos de uso específicos aos quais ele se destina a suportar.