Como configurar o seu modelo de IA no Chatbot 29 de dezembro de 2023 18:01 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: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. 1. Primeiramente, entre no Builder. 2. Clique no bloco de Exceções e, então, acesse a aba “Ações”; 3. Clique no botão “Adicionar ação de entrada”; 4. Crie uma nova ação do tipo “Consultar assistente de conteúdo"; 5. Uma nova ação será criada com os campos: “Variável”, “Confiabilidade de IA” e “Variável para o valor de retorno”. 6. 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. 7. Clique na seta “<” para gravar as suas configurações. Configurar nas condições de saída 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. 1. Crie um novo bloco com um nome sugestivo (exemplo: “Resposta do assistente de conteúdo”). 2. 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”. 3. Por fim, clique o bloco de Exceção novamente, mas, agora, acesse a aba de “Condições de saída”; 4. Clique no botão “adicionar condição de saída” para criar uma nova condição; 5. Crie uma condição na qual, se a variável que armazena a resposta do assistente de conteúdo existe (exemplo: “contentResult”), então ir para o bloco que exibe esse conteúdo (exemplo: “Resposta do assistente de conteúdo”). Lembre-se: Posicione 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 usar o Assistente de Conteúdo Afinal, o que é IA (Inteligência Artificial)? Criando mensagens interativas no WhatsApp Como configurar o LUIS como seu provedor de IA Como configurar um bloco de destino por variável