Como configurar o seu modelo de IA no Chatbot Help Center 23 de janeiro de 2023 15:03 Atualizado Índice: Visão geral Usando IA nas condições de saída do Builder Cascata de validação Chatbot baseado em IA Chatbot híbrido Usando o assistente de conteúdo Visão geral Primeiro, certifique-se de que o seu modelo de inteligência artificial (IA) está devidamente configurado e publicado e que os seguintes passos já foram cumpridos: Ter configurado e conectado um provedor de NLP (IBM Watson, Microsoft LUIS e Google Dialogflow). Ter criado pelo menos uma intenção com alguns exemplos de texto; Ter treinado e publicado o modelo no respectivo provedor. A partir daí, é possível começar a fazer chamadas à inteligência artificial por meio do seu chatbot, usando IA nas condições de saída do Builder. É possível criar três tipos principais de chatbot com inteligência artificial: Um chatbot baseado em IA, em que toda mensagem da pessoa usuária é enviada para o provedor de NLP, que identifica as intenções e entidades e, então, redireciona o fluxo; Um chatbot híbrido, que tem um ou mais fluxos principais e, caso a pessoa usuária saia dele, a IA é usada para trazê-la de volta ao fluxo; Um chatbot que usa o assistente de conteúdo; neste caso, o assistente responde a pessoa usuária com conteúdos prontos, de acordo com o que a pessoa disse, ideal para funcionar como FAQ. Usando IA nas condições de saída do Builder Para integrar a IA no fluxo do chatbot, vamos usar as condições de saída presentes nos blocos do Builder. Vamos configurar a fonte de dados como “Intenção identificada” ou “Entidade identificada” e a condição como “Igual a” para fazer a integração com seu modelo de IA e, então, tomar uma decisão a partir disso. Uma prática recomendada neste tutorial é capturar as mensagens que caem no bloco de exceção e então processá-las usando o recurso de IA. Um cuidado a ser tomado no momento de criar a lista de condições de saída é deixar as mais específicas acima das mais genéricas. Isso deve ser feito por uma questão de ordem (precedência na verificação), a fim de evitar que algumas condições específicas nunca sejam verificadas. Veja o exemplo abaixo. Nele, há duas condições que verificam a existência da intenção “Gerar segunda via”; porém, a segunda condição também precisa da existência da entidade “boleto” para ser atendida. Nesse cenário, se a condição que verifica a intenção vier primeiro do que a condição que verifica a entidade, o que acontece? Note que, se a intenção “Gerar segunda via” for identificada, independentemente de haver a entidade “boleto” ou não, a primeira condição será satisfeita. Com isso, a segunda condição sequer será verificada! No entanto, se a condição que verifica a entidade vier primeiro e houver a intenção “Gerar segunda via” na frase da pessoa usuária, temos dois cenários possíveis. Se a entidade for identificada, essa condição será satisfeita. Se a entidade não for identificada, a próxima condição será verificada, e corretamente satisfeita. Cascata de validação Uma boa prática para o uso e bom funcionamento de IA no chatbot é fazer uma pré-validação ao submeter a mensagem do usuário para o provedor de NLP. Lembre-se de que a mensagem pode ser uma imagem, vídeo ou áudio, e não conter um texto a ser processado. Além disso, pode ser que a mensagem seja pequena demais (com uma única palavra), grande demais (como um texto copiado e colado várias vezes) ou que seja uma simples saudação ou despedida. Esses são alguns exemplos comuns de mensagens que o chatbot pode receber e cair no bloco de exceção. Essas mensagens não precisam ser enviadas para o provedor, podendo ser previamente descartadas com uma pré-validação, que, em geral, é conhecida como “cascata de validação”. Primeiramente, vamos adicionar algumas condições para validar o texto de entrada da pessoa usuária, O objetivo dessa ação é verificar se este é um texto comum, antes de enviar para a inteligência artificial processar. Se este não for um texto comum, vamos direcionar a saída para o bloco de erro padrão. Clique no bloco de Exceção e, então, acesse a aba de “condições de saída”. Clique no botão “Adicionar condição de saída” e uma nova condição será criada ao final da lista de condições. Nesse caso, vamos comparar se a variável do Builder que armazena o tipo do conteúdo enviado é imagem, vídeo ou áudio, e, então, direcionamos para o bloco de Erro padrão. Chatbot baseado em IA Nesta seção, vamos mostrar como criar um chatbot usando a inteligência artificial como recurso principal. O primeiro passo é adicionar uma cascata de validação no bloco de exceção do fluxo. Essa ação serve para filtrar algumas mensagens antes de enviá-las para a IA visando sua importância, de modo a não processar mensagens desnecessárias. Na sequência, baixe o fluxo aqui e o importe para dentro do builder para seguir o tutorial passo a passo. Esse chatbot é chamado de FAQ, usado para responder às perguntas solicitadas com NLP (Processamento de Linguagem Natural), o que torna a conversa mais fluida. O fluxo começa no bloco “Início”, seguido da mensagem de boas-vindas, e então vai para o bloco “Exceção”, onde acontecem todas as tratativas da inteligência artificial. A primeira imagem apresenta o fluxo. A segunda imagem traz a configuração de saída usando inteligência artificial do bloco “Exceções”, que usa as entidades e intenções para acessar cada bloco específico. Quando enviada uma mensagem para o chatbot, ele entra no bloco de “Exceção”, onde é feita análise das informações. Essa análise verifica se a mensagem se encaixa em um dos casos de intenções ou entidades. Se um desses casos foi identificado, ele é enviado para o bloco correspondente, dando seguimento ao fluxo. Caso não seja encontrado, será enviada uma mensagem de erro, explicando que a mensagem não foi reconhecida. Usando inteligência artificial, você pode aprimorar seu chatbot. Caso identifique que não foi suficiente a quantidade de entidades e intenções podemos criar novas. Depois de qualquer um desses passos, devemos sempre treinar nossa IA e publicar novamente. Chatbot híbrido Nesta seção, vamos mostrar como podemos integrar IA em um chatbot que faz atendimentos para uma loja virtual. Ele tem um fluxo simples, com alguns menus e submenus. Caso deseje, é possível baixar esse fluxo aqui e importá-lo no builder para seguir o tutorial passo a passo. Sobre o fluxo, em resumo, após o bloco de boas-vindas há um bloco de menu que exibe alguns assuntos que podem ser tratados com o chatbot. A depender da escolha, a pessoa usuária será redirecionada para um submenu com opções sobre aquele assunto específico. O problema é que, nesse cenário, muitas vezes ela pode não conseguir chegar a esses submenus e encontrar a opção que deseja, ou até mesmo enviar uma mensagem inesperada. Portanto, vamos configurar a inteligência artificial para processar toda mensagem que sair do fluxo padrão e redirecionar a pessoa para o bloco que melhor corresponder ao que ela deseja. A imagem a seguir ilustra o fluxo do chatbot que vamos usar neste tutorial. Primeiramente, uma cascata de validação será adicionada no bloco de exceção do fluxo para filtrar algumas mensagens antes de enviá-las para a IA, visando sua importância, de modo a não processar mensagens desnecessárias. Agora, nas condições de saída do bloco de exceção, vamos adicionar condições que serão satisfeitas caso certas intenções e/ou entidades sejam reconhecidas na frase da pessoa usuária. Primeiro, vamos criar uma condição para que, caso a intenção “Gerar segunda via” for reconhecida, o fluxo será redirecionado para o bloco “Menu de segunda via”. Assim, se a pessoa disser algo relacionado a gerar segunda via, e o provedor de NLP conseguir identificar isso, ela será automaticamente redirecionada para o bloco que trata sobre isso, sem que o chatbot exiba uma mensagem de erro ou diga que não entendeu. Caso você tenha dificuldades para criar condições de saída que consultem intenções e entidades da frase da pessoa usuária, leia novamente a seção Usando IA nas condições de saída. É possível também criar condições de saída mais complexas, identificando entidades na frase, além da intenção. Por exemplo, vamos criar agora uma condição para que, caso a intenção “Fazer alteração” e a entidade “forma de pagamento” sejam reconhecidas na frase da pessoa usuária, o fluxo será redirecionado para o bloco “Alterar método de pagamento”, como pode ser visto na imagem seguinte. Por fim, esse processo de criar condições de saída envolvendo intenções e entidades pode ser estendido. É possível criar quantas condições forem necessárias, tornando seu chatbot cada vez mais assertivo durante uma conversa, permitindo interações muito mais fluidas e naturais. Caso queira baixar o fluxo final, para analisar como ele ficou após a criação das condições de saída, clique aqui. Usando o assistente de conteúdo É possível também ter respostas prontas para uma certa combinação de intenções e entidades. Para isso, é necessário cadastrar essas combinações, junto da respectiva resposta no assistente de conteúdo, em um submenu dentro da aba de IA. Para saber mais sobre o seu funcionamento e como cadastrar novas combinações, consulte aqui. Após cadastrar as combinações desejadas, vamos configurar a consulta ao assistente de conteúdo no fluxo do chatbot, no Builder. Para isso, vamos usar também o bloco de exceção para capturar as mensagens que saírem do fluxo convencional. Elas serão enviadas para o provedor de NLP identificar as intenções e entidades presentes na frase e, então, retornar o devido conteúdo, caso exista. Primeiramente, entre no Builder. Clique no bloco de Exceções e, então, acesse a aba “Ações”. Clique no botão “Adicionar ação de entrada” e crie uma nova ação do tipo “Consultar assistente de conteúdo". Uma nova ação será criada com os campos: “Variável”, “Confiabilidade de IA” e “Variável para o valor de retorno”. No campo de “Variável”, vamos preencher com a variável que armazena o conteúdo da mensagem enviada pela pessoa usuária “{{input.content}}”. O campo de confiabilidade de IA não é obrigatório. Caso ele não seja preenchido, a confiabilidade cadastrada nas configurações do chatbot será usada; logo, deixaremos esse campo em branco. O campo de variável de retorno será preenchido com “contentResult”, mas ele pode ser preenchido com qualquer outro nome de sua escolha. Clique na seta “<” para gravar as suas configurações. Agora só falta configurar nas condições de saída que, caso exista uma combinação identificada, ela deve redirecionar para um bloco que vai exibir o conteúdo dessa combinação. Crie um novo bloco com um nome sugestivo (ex.: “Resposta do assistente de conteúdo”). Nele, adicione um balão de texto com o atributo “Value” da variável que você colocou para armazenar a resposta do assistente de conteúdo. Para tanto, use o operador “@”. Caso tenha colocado a variável como “contentResult”, ficará da seguinte forma: “contentResult@Value”. Pronto! Por fim, clique o bloco de Exceção novamente, mas, agora, acesse a aba de “Condições de saída”. Clique no botão “adicionar condição de saída” para criar uma nova condição. Crie uma condição na qual, se a variável que armazena a resposta do assistente de conteúdo existe (ex.: “contentResult”), então ir para o bloco que exibe esse conteúdo (ex.: “Resposta do assistente de conteúdo”). Lembre-se de posicionar essa nova condição de saída acima das condições que são mais genéricas do que ela, para que ela possa ser verificada e executada corretamente. Para mais detalhes sobre isso, consulte a seção “Usando IA nas condições de saída do Builder”. É isso! Agora você já tem um chatbot que usa IA para dar respostas automáticas caso a frase dada pela pessoa usuária não se encaixe no fluxo esperado. Para mais informações, acesse a discussão sobre o assunto em nossa comunidade ou os vídeos no nosso canal. 😃 Artigos relacionados Como configurar o Dialogflow como seu provedor de IA Como usar a ferramenta de IA dentro do Builder Como usar o Assistente de Conteúdo Afinal, o que é IA (Inteligência Artificial)? FAQs