Classificando conversas de chatbots utilizando N8N e Inteligência Artificial

Olá, tudo bem?

Nesse post iremos classificar conversas de chat utilizando N8N e Inteligência Artificial. O objetivo é analisar conversas de chatbots ativas e notificar caso esteja ocorrendo uma má experiência do usuário para ser transferido para um operador.

Tópicos:

  • Situações a serem identificadas
  • Agente de Inteligência Artificial
  • O fluxo
  • Chats de Exemplo

Situações a serem identificadas

O objetivo é analisar o chat entre a pessoa e o chatbot para identificar as seguintes situações:

  1. Necessidade de Intervenção de um Operador: Avaliar se o usuário está enfrentando dificuldades que o chatbot não consegue resolver, indicando a necessidade de intervenção humana para garantir uma resolução adequada.
  2. Experiência Positiva do Usuário: Verificar se o usuário está satisfeito com as respostas e interações fornecidas pelo chatbot, garantindo que suas expectativas estão sendo atendidas de forma eficaz.
  3. Engajamento do Cliente: Analisar o nível de engajamento do cliente durante a interação, observando se ele está participando ativamente e demonstrando interesse nas informações ou serviços oferecidos pelo chatbot.

Com essas informações, é possível adicionar alguma chamada de ação após o processamento do fluxo. Exemplo: se há necessidade de intervenção de um operador, é possível chamar um método que irá transferir essa pessoa para um atendimento humano.


Agente de Inteligência Artificial

Para implementar a análise de conversas entre clientes e um chatbot de uma farmácia, será utilizado o Agente de Inteligência Artificial do N8N. Este agente irá ler o chat e aplicar um script (system message) que orienta o modelo de inteligência artificial a classificar o chat conforme necessário. Vamos detalhar o script:

Você é um assistente especializado na análise de conversas entre clientes e um chatbot de uma farmácia.
Seu objetivo é analisar um chat e classificá-lo com base nos seguintes critérios:

1️⃣ Análise de Sentimento:

  • Positivo (Cliente satisfeito)
  • Neutro (Cliente sem emoção clara)
  • Negativo (Cliente frustrado ou irritado)


2️⃣ Necessidade de Humano?

  • Sim (O cliente pediu um atendente ou a conversa mostrou necessidade de suporte humano, ou se o bot nao esta interagindo)
  • Não (O bot resolveu a solicitação com sucesso)


3️⃣ Cliente Engajado?

  • Sim (O cliente participou ativamente da conversa)
  • Não (O cliente abandonou a conversa rapidamente ou não interagiu)

📌 Exemplo de entrada (Chat de exemplo)


Cliente: Oi, vocês têm dipirona?
Bot: Sim, temos dipirona. Você deseja um link para compra?
Cliente: Sim, por favor.
Bot: Aqui está o link para finalizar sua compra: [link]. Precisa de mais alguma coisa?
Cliente: Não, obrigado!
Bot: De nada!

🔍 Saída esperada


“`json
{
“Análise de Sentimento”: “Positivo”,
“Necessidade de Humano?”: “Não”,
“Cliente Engajado?”: “Sim”
}
Agora, analise a seguinte conversa e forneça a classificação no mesmo formato JSON:


Script Detalhado

Objetivo do Assistente:
O assistente é especializado na análise de conversas entre clientes e um chatbot genérico. Ele deve classificar cada chat com base em três critérios principais: Análise de Sentimento, Necessidade de Intervenção Humana e Engajamento do Cliente.

Critérios de Classificação:

  1. Análise de Sentimento:
  • Positivo: O cliente está satisfeito com a interação. Indícios de satisfação incluem agradecimentos ou expressões de contentamento.
  • Neutro: O cliente não demonstra emoções claras. A interação é factual e direta, sem expressões emocionais.
  • Negativo: O cliente está frustrado ou irritado. Pode haver reclamações, expressões de insatisfação ou pedidos repetidos de ajuda.
  1. Necessidade de Humano?
  • Sim: Indica que o cliente pediu explicitamente por um atendente humano, ou a conversa sugere que o suporte humano é necessário. Isso também se aplica se o bot não está interagindo adequadamente.
  • Não: O bot conseguiu resolver a solicitação do cliente com sucesso, sem necessidade de intervenção humana.
  1. Cliente Engajado?
  • Sim: O cliente participou ativamente da conversa, respondendo às perguntas do bot e seguindo o fluxo da interação.
  • Não: O cliente abandonou a conversa rapidamente ou não interagiu de forma significativa, indicando falta de engajamento.

Exemplo de Entrada e Saída:

  • Entrada (Chat de exemplo):
  • Cliente: Oi, vocês têm dipirona?
  • Bot: Sim, temos dipirona. Você deseja um link para compra?
  • Cliente: Sim, por favor.
  • Bot: Aqui está o link para finalizar sua compra: [link]. Precisa de mais alguma coisa?
  • Cliente: Não, obrigado!
  • Bot: De nada!

Saída Esperada:

{
“Análise de Sentimento”: “Positivo”,
“Necessidade de Humano?”: “Não”,
“Cliente Engajado?”: “Sim”
}

Instrução Final:
O assistente deve agora analisar a conversa fornecida e retornar a classificação no formato JSON especificado. Este processo ajuda a identificar rapidamente a qualidade da interação e a necessidade de melhorias no atendimento.


O fluxo

No fluxo disponibilizado temos um agente de inteligência artificial que irá processar um chat e extrair as informações de análise de sentimento, necessidade de humano e se o cliente está engajado.
Analisando detalhamento o fluxo:

Métodos de entrada

  • ao testar
    • Junto com um componente chamado “variavel_teste” simula o recebimento de um chat para fins de testes.
    • O componente “variavel_teste” possui uma variável chamada ‘chat’ que contém uma conversa para ser processada pelo agente de IA.
  • workflow input trigger
    • Acionado quando é chamado por outro fluxo, sendo obrigatório o envio da informação ‘chat’ para ser processado pelo agente de IA.

AI Agent

  • É o componente responsável por ler a conversa de chat e classificá-lo conforme desejado.
  • Irá utilizar um modelo de inteligência artificial ligado em ‘Chat Model’.
    • No exemplo foi utilizado o ‘Ollama Chat Model’ utilizando o modelo LLAMA 3.2.
    • Porém é possível alterar para outro modelo desejado como OpenAI, Mistral ou outro desejado.
  • A propriedade ‘System message’ foi preenchida, a função dessa propriedade é instruir o modelo de inteligência artificial como ler a conversa e responder ao usuário conforme desejado.

Extrai_informacoes

  • Código contendo uma função que extrai da resposta do Agente a informação do formato desejado (JSON).
  • Preparando a resposta para ser retornada para o usuário.
  • Com as informações, é possível adicionar ações adicionais. Por exemplo, se o modelo identificar que precisa de interação de humano, pode-se transferir a conversa a um atendente humano.

Chats de Exemplo

Utilizando o modelo LLAMA 3.2 e DEEPSEEP R1 foram classificada algumas conversas como exemplo de teste do fluxo. Segue abaixo as mensagens e os resultados.

Cliente: Olá, preciso comprar um remédio para dor de cabeça. Vocês têm algum disponível?
🤖 Bot: Olá! Claro! Temos diversos medicamentos para dor de cabeça. Você tem preferência por algum específico ou gostaria de sugestões?
Cliente: Pode me sugerir alguns?
🤖 Bot: Claro! Algumas opções são Paracetamol, Dipirona e Ibuprofeno. Você deseja comprar algum desses?
Cliente: Sim, vou querer Paracetamol. Como faço para comprar?
🤖 Bot: Você pode comprar diretamente pelo nosso site ou solicitar entrega. Quer que eu gere um link de compra para você?
Cliente: Sim, por favor!
🤖 Bot: Aqui está o link para finalizar sua compra: [link]. Precisa de mais alguma coisa?
Cliente: Não, muito obrigado!
🤖 Bot: De nada! Qualquer dúvida, estou aqui para ajudar!

Análise do modelo

  • Análise de Sentimento – Positivo
  • Necessidade de Humano? – Não
  • Cliente Engajado? – Sim

Cliente: Olá, fiz um pedido e gostaria de saber o status da entrega.
🤖 Bot: Olá! Como posso te ajudar?
Cliente: Quero saber o status da minha entrega.
🤖 Bot: Entendi! Como posso te ajudar?
Cliente: Meu pedido ainda não chegou, quero saber onde está!
🤖 Bot: Me desculpe, não entendi. Como posso te ajudar?
Cliente: Você pode verificar o status da minha entrega?
🤖 Bot: Entendi! Como posso te ajudar?
Cliente: Ah, esquece…

Análise do modelo

  • Análise de Sentimento – Negativo
  • Necessidade de Humano? – Sim
  • Cliente Engajado? – Não

Cliente: Meu pedido ainda não chegou! Quero falar com um atendente humano!
🤖 Bot: Entendi! Posso ajudar com informações sobre o seu pedido. Qual é o número do pedido?
Cliente: Não! Quero falar com um humano!
🤖 Bot: Para ajudar, preciso do número do seu pedido. Você pode me informar?
Cliente: Já falei que quero um humano!
🤖 Bot: Me desculpe, não entendi. Você pode fornecer o número do pedido?
Cliente: Isso é uma piada? Quero um atendente humano!
🤖 Bot: Para ajudar, preciso do número do seu pedido.

Análise do modelo

  • Análise de Sentimento – Negativo
  • Necessidade de Humano? – Sim
  • Cliente Engajado? – Não

Cliente: Olá, vocês aceitam plano de saúde para descontos em medicamentos?
Atendente: Olá! Sim, aceitamos alguns planos. Qual é o seu?
Cliente: Meu plano é o Saúde+
Atendente: Infelizmente, esse plano não está na nossa lista de parceiros. Mas temos descontos em alguns medicamentos, deseja verificar?
Cliente: Ok, pode me informar quais?
Atendente: Claro! Vou enviar uma lista para você no WhatsApp.
Cliente: Certo, obrigado.

Análise do modelo

  • Análise de Sentimento – Neutro
  • Necessidade de Humano? – Não
  • Cliente Engajado? – Sim

Cliente: Olá, gostaria de saber se vocês têm o medicamento X disponível na farmácia.
Atendente: Olá! Sim, temos o medicamento X em estoque. Você prefere retirar na loja ou receber em casa?
Cliente: Ótimo! Prefiro receber em casa. Quanto tempo leva para a entrega?
Atendente: Normalmente, a entrega ocorre em até 24 horas na sua região. Podemos seguir com o pedido?
Cliente: Sim, por favor! Muito obrigado pela atenção.
Atendente: De nada! Qualquer dúvida, estamos à disposição.

Análise do modelo

  • Análise de Sentimento – Positivo
  • Necessidade de Humano? – Não
  • Cliente Engajado? – Sim

Cliente: Meu pedido ainda não chegou! Quero falar com um atendente humano!
🤖 Bot: Entendi! Posso ajudar com informações sobre o seu pedido. Qual é o número do pedido?
Cliente: Não! Quero falar com um humano!
🤖 Bot: Para ajudar, preciso do número do seu pedido. Você pode me informar?
Cliente: Já falei que quero um humano!
🤖 Bot: Me desculpe, não entendi. Você pode fornecer o número do pedido?
Cliente: Isso é uma piada? Quero um atendente humano!
🤖 Bot: Para ajudar, preciso do número do seu pedido.

Análise do modelo

  • Análise de Sentimento – Negativo
  • Necessidade de Humano? – Sim
  • Cliente Engajado? – Não

Fluxo para Download

Baixe o fluxo de exemplo e personalize-o conforme suas necessidades. Este fluxo serve como base para explorar as funcionalidades do Telegram no n8n.

  1. Clique no botão abaixo para baixar o arquivo JSON do fluxo.
  2. Importe o arquivo no seu ambiente n8n.