Como Construir um Chatbot em Python [TUTORIAL]

Neste tutorial, você aprenderá como construir um chatbot em Python, para isso usaremos toda a versatilidade do chatterbot.

Você está cansado de esperar em longas filas até que sua chamada seja conectada ao executivo de atendimento ao cliente? Ler as perguntas frequentes faz você se sentir cansado, fadigado? Então você está na página certa. 

Você consegue se lembrar da última vez em que se comunicou com um agente de atendimento ao cliente via chat para que o item errado fosse entregue a você? Há uma grande probabilidade de você estar sendo atendido por um bot, e não por um representante de atendimento ao cliente. Então, o que exatamente são bots? Como podemos construir um? Qual fonte de código é necessária? Estas são algumas das perguntas que serão respondidas nesta postagem do blog!

A inteligência artificial, que coloca em ação o aprendizado de máquina e o processamento de linguagem natural (PNL) para a construção de bot ou chatbot, é projetada especificamente para desvendar a interação suave entre humanos e computadores. 

Os chatbots estão por toda parte, seja em um site de banco, pizzaria ou lojas de e-commerce, você encontrará chatbots à esquerda, à direita e no centro de suas páginas. Os chatbots fornecem assistência de atendimento ao cliente em tempo real em uma variedade de questões predefinidas relacionadas ao domínio em que foi criado. Ele adapta a linguagem humana natural e conversa com os humanos de uma maneira semelhante à humana.

Para simplificar a definição do chatbot, podemos dizer que os chatbots são a evolução dos sistemas de perguntas e respostas que empregam processamento de linguagem natural. 

De acordo com fontes até o ano de 2024, o tamanho do mercado global de conversação crescerá para US$ 15,7 bilhões de dólares, com 30,2% sendo a taxa de crescimento anual. Por exemplo, em meio à pandemia do CoronaVírus, testemunhamos milhares de boatos circulando no WhatsApp, como o que pode ser usado para tratar COVID ou o que pode ser benéfico para aumentar a imunidade, ou se o vírus foi desenvolvido em um laboratório. Pondo fim a tais boatos, o Facebook lançou um chatbot que funciona como um verificador de fatos.

Neste tutorial, aprenderemos a construção do Chatbot em detalhes, incluindo:

  • Introdução
  • O que é Chatbot?
  • Como funciona o Chatbot?
  • Comparação de plataformas Chatbot;
  • Biblioteca Chatterbot;
  • Construindo um Chatbot usando Chatterbot;
  • Teste de chatbot.

O que é um chatbot?

O termo “chatterbot” surgiu em 1994, quando Michael Mauldin criou seu primeiro chatbot chamado “Julia”. De acordo com o Oxford Dictionary, um chatbot é definido como “Um programa de computador projetado para simular conversas com usuários humanos, especialmente pela Internet”. 

Pode ser visto como um assistente virtual que se comunica com os usuários por meio de mensagens de texto e ajuda as empresas a se aproximarem de seus clientes. 

É um programa projetado para imitar a maneira como os humanos se comunicam. Isso pode ser feito por meio de uma interface de chat ou por chamada de voz. Os desenvolvedores geralmente projetam chatbots de forma que seja difícil dizer aos usuários se eles estão se comunicando com uma pessoa ou um robô.

Chatbots ajuda qualquer negócio / organização a cumprir os seguintes objetivos:

  • Aumenta a eficiência operacional;
  • Automatizando o atendimento de solicitações do cliente;
  • Lidar com consultas básicas, o que por sua vez libera os funcionários para trabalhar em consultas complexas e de maior valor;
  • Oferece suporte a vários idiomas;
  • Economiza tempo e esforço automatizando o suporte ao cliente;
  • Melhora a taxa de resposta, bem como o envolvimento do cliente;
  • Personalização da comunicação.

Como funciona um chatbot?

Os chatbots nada mais são do que aplicativos de software que possuem uma camada de aplicativo, um banco de dados e APIs. Para simplificar o funcionamento do chatbot, podemos dizer que ele funciona na correspondência de padrões para classificar o texto e produzir uma resposta adequada para as perguntas / consultas feitas pelo usuário. 

O chatbot responde ao usuário de acordo com o programa que foi alimentado nele. Os chatbots são de tipos diferentes, dependendo de como são usados. Principalmente, existem três tipos de chatbots, e são os seguintes:

1 – Bate-papo baseado em regras: Este é o bot de bate-papo básico feito, o usuário interage com esse tipo de bot usando opções predefinidas. Para obter respostas desses bots, os usuários precisam clicar em certas opções. Esses tipos de bots coletam a solicitação do usuário, analisam-na e, em seguida, oferecem resultados na forma de botões. Esses bots são comumente usados ​​para substituir as perguntas mais frequentes quando se trata de consultas complexas; nem sempre são a melhor solução.

2 – Chatbots independentes (palavras-chave): são bots de aprendizado de máquina, ao contrário dos chatbots baseados em regras, eles analisam o que o usuário deseja e respondem de forma adequada. Esses chatbots usam palavras-chave personalizáveis ​​e aprendizado de máquina para determinar como responder às solicitações dos usuários de maneira eficaz e eficiente.

3 – Bots de chat do PNL (contextuais): Até agora, são os bots de chat mais avançados. Eles são uma combinação do melhor dos chatbots baseados em regras e de palavras-chave. Esses chatbots usam a PNL para entender o contexto e a intenção das solicitações dos usuários e, assim, agir de acordo. Esses chatbots podem lidar com várias solicitações do mesmo usuário com facilidade.

Comparações da plataforma Chatbot

Muitas plataformas oferecem chatbots personalizados com automação, tornando os melhores serviços de suporte disponíveis para os clientes sempre que eles precisarem, sempre em tempo hábil, sem as capacidades de conversação da caixa. Os clientes também desejam comprar de uma empresa que possam conectar-se facilmente por meio de mensagens.

Veja abaixo as principais plataformas de construção de chatbot baseados em Inteligência Artificial:

Serviço de bot do Azure: o serviço de bot do Azure oferece a criação de um chatbot do zero, ou seja, você pode criar, conectar, testar e implantar. Ele permite que os desenvolvedores usem o SDK e as ferramentas de código aberto. Ele também permite que os desenvolvedores criem bots avançados, como assistentes virtuais, para lidar com consultas complexas.

Botsify: A singularidade desta ferramenta é que ela permite que usuários não técnicos construam um chatbot com sua interface intuitiva. Os bots são representados aqui como histórias, ou seja, você pode criar várias histórias ou vários chatbots e implantá-los conforme a necessidade. Outro ótimo recurso é a capacidade de salvar as respostas dos usuários em um formulário que pode ser facilmente exportado para um CSV.

Amazon Lex: o Amazon lex permite que os desenvolvedores criem interfaces de conversação usando texto e voz. Ele vem com funcionalidades avançadas de aprendizado profundo e PNL para a compreensão do contexto do texto. Ele fornece um console fácil de usar para construir chatbot em minutos.

Mobile Monkey: Mobile monkey oferece aos desenvolvedores a criação de chatbots especificamente para fins de marketing. Ele permite que os desenvolvedores façam bots de anúncios do Facebook, bots de SMS e chatbots nativos da web, tudo em uma única plataforma. Eles também oferecem modelos de chatbot prontos para todos os negócios possíveis, que podem ser incorporados diretamente em um site.

ChatterOn: ele afirma lidar com diferentes tipos de respostas de conteúdo rico do Bot, pois permite que os desenvolvedores conectem diferentes APIs em cada interação com o usuário. O ChatterOn oferece mais de 20 ferramentas pré-prontas que podem ser usados ​​com um único clique. Não requer muita codificação, o que torna mais fácil para usuários não técnicos construir chatbots.

TARS: Oferece a você a construção de uma landing page de conversação, que permite a você criar um chatbot automatizado para cumprimentar vocês, clientes, dar-lhes informações relevantes sobre suas dúvidas sobre seus produtos e solicitar seus contatos simultaneamente. O Tars oferece muitos modelos de chatbot predefinidos, que são classificados em duas partes – por setor e por caso de uso.

Agora, você deve estar curioso para criar seu próprio chatbot. E o que é melhor do que um chatbot de PNL personalizável? Vamos agora mostrar o passo a passo de como Construir um Chatbot em Python usando a biblioteca chatterbot, você vai ver, é bem simples!

Chatterbot

Como o nome sugere, o chatterbot é uma biblioteca python projetada especificamente para gerar chatbots. Este algoritmo usa uma seleção de algoritmos de aprendizado de máquina para fabricar respostas variadas aos usuários de acordo com suas solicitações.

O Chatterbot facilita o desenvolvimento de chatbots que podem se envolver em conversas. Ele começa criando um chatterbot não treinado, que não tem experiência ou conhecimento anterior sobre como se comunicar. Conforme os usuários inserem as declarações, a biblioteca salva a solicitação feita pelo usuário, bem como também salva as respostas que são enviadas de volta aos usuários. Conforme o número de instâncias aumenta no chatterbot, a precisão das respostas feitas pelo chatterbot também aumenta.

O Chatterbot é treinado para pesquisar a resposta análoga mais próxima, encontrando a solicitação análoga mais próxima feita pelos usuários que seja equivalente à nova solicitação feita. 

Em seguida, ele seleciona uma resposta das respostas já existentes. O USP do chatterbot é que ele permite que os desenvolvedores criem seus próprios conjuntos de dados e estruturas com facilidade.

Como Construir um Chatbot em Python usando Chatterbot

Vamos começar instalando a biblioteca chatterbot. Para criar chatbot também precisa instalar chatterbot corpus. “Corpus” – o significado literal é uma coleção de palavras. Ele contém um corpus de dados que está incluído no módulo chatterbot. 

Cada corpus nada mais é que um protótipo de diferentes declarações de entrada e suas respostas. Esses corpus são usados ​​por bots para se treinarem. O método mais recomendado para instalar o chatterbot e chatterbot_corpus é usando pip.

Comandos de instalação para terminal:

pip install chatterbot
pip install chatterbot_corpus

Comandos de instalação para Jupyter Notebook:

!pip install chatterbot
!pip install chatterbot_corpus

Vamos primeiro importar a classe Chatbot do módulo chatterbot.

# Importando chatterbot
do chatterbot import ChatBot

Criar instância de chatbot

Agora, é hora da parte mais interessante, ou seja, nomear seu chatbot criando um objeto Chatbot. Você pode escolher o nome que quiser. Essa única linha de código gera nosso próprio novo bot chamado Buddy. Precisamos especificar mais alguns parâmetros antes de executar nosso primeiro programa.

# Criar objeto da classe ChatBot
bot = ChatBot('Buddy')
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     /root/nltk_data...
[nltk_data]   Unzipping taggers/averaged_perceptron_tagger.zip.
[nltk_data] Downloading package stopwords to /root/nltk_data...
[nltk_data]   Unzipping corpora/stopwords.zip.
[nltk_data] Downloading package wordnet to /root/nltk_data...
[nltk_data]   Unzipping corpora/wordnet.zip.

Você pode posicionar o adaptador de armazenamento com o objeto chatbot. Os adaptadores de armazenamento permitem que você se conecte a uma determinada unidade de armazenamento ou rede. Para usar um adaptador de armazenamento, precisamos especificá-lo.

Posicionaremos o adaptador de armazenamento atribuindo-o ao caminho de importação do armazenamento que desejamos usar. Aqui, estamos usando o SQL Storage Adapter, que permite que o chatbot se conecte a bancos de dados em SQL.

Usando o parâmetro de banco de dados, criaremos um novo banco de dados SQLite. Siga o código abaixo para criar um novo banco de dados para o chatbot.

# Crie o objeto da classe ChatBot com o Storage Adapter
bot = ChatBot(
    'Buddy',
    storage_adapter='chatterbot.storage.SQLStorageAdapter',
    database_uri='sqlite:///database.sqlite3'
)

Você também pode posicionar o adaptador lógico com um objeto chatbot. Como o nome indica, Logical Adapter regula a lógica por trás do chatterbot, ou seja, ele escolhe respostas para qualquer entrada fornecida a ele. Este parâmetro contém uma lista de operadores lógicos.

O Chatterbot nos permite usar vários adaptadores lógicos. Quando mais de um adaptador lógico é colocado em uso, o chatbot calculará o nível de confiança e a resposta com a maior confiança calculada será retornada como saída. Aqui, usamos dois adaptadores lógicos: BestMatch e TimeLogicAdapter.

# Crie o objeto da classe ChatBot com Logic Adapter
bot = ChatBot(
    'Buddy',  
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.TimeLogicAdapter'],
)

Treinando o chatbot

Agora, a etapa final para fazer um chatbot é treiná-lo usando os módulos disponíveis no chatterbot. Treinar um chatbot usando o chatterbot é tão simples quanto fornecer uma conversa no banco de dados do chatbot.

Assim que o chatbot recebe um conjunto de dados, ele produz as entradas essenciais no gráfico de conhecimento do chatbot para representar a entrada e a saída da maneira correta. Primeiramente, vamos importar ListTrainer e criar seu objeto passando o Chatbot object, e chamar o método train() passando uma lista de sentenças.

# Inportar ListTrainer
do chatterbot.trainers

trainer = ListTrainer(bot)

trainer.train([
'Oi',
'Olá',
'Eu preciso de sua ajuda em relação ao meu pedido',
'Por favor, forneça-me o ID do seu pedido',
'Eu tenho uma reclamação.',
'Por favor, explique, sua preocupação',
'Quanto tempo leva para receber um pedido?',
'Um pedido leva de 3 a 5 dias úteis para ser entregue.',
'Ok, obrigado',
'Sem problemas! Tenha um bom dia!'
])
List Trainer: [####################] 100%

Teste de chatbot

A última etapa deste tutorial de como Construir um Chatbot em Python é testar as habilidades de conversação do chatterbot. Para testar suas respostas, chamaremos o método get_responses() da instância do Chatbot.

# Obtenha uma resposta para o texto de entrada 'Eu gostaria de reservar um voo.'
response = bot.get_response('Eu tenho uma reclamação.')

print("Bot Response:", response)
Bot Response: Por favor, me informe sua reclamação

Criaremos um loop while para o nosso chatbot rodar. Quando as instruções são passadas no loop, obteremos uma resposta apropriada para isso, pois já inserimos dados em nosso banco de dados. Se obtivermos a instrução “Tchau” ou “tchau” do usuário, podemos encerrar o loop e interromper o programa.

name=input("Digite seu nome: ")
print("Bem-vindo ao Serviço de bots! Deixe-me saber, como posso ajudá-lo?")
while True:
    request=input(name+':')
    if request=='Bye' or request =='Tchau':
        print('Bot: Tchau')
        break
    else:
        response=bot.get_response(request)
        print('Bot:',response)
Digite seu nome: Carlos Eduardo
Bem-vindo ao Serviço de bots! Deixe-me saber, como posso ajudá-lo?
Carlos Eduardo:Eu preciso de sua ajuda em relação ao meu pedido
Bot: Por favor, forneça-me o ID do seu pedido
Carlos Eduardo:12345
Bot: Sem problemas! Tenha um bom dia!
Carlos Eduardo:Tchau
Bot: Tchau

Conclusão

Parabéns, você chegou ao final deste incrível tutorial, agora você sabe como Construir um Chatbot em Python usando a biblioteca ChatterBot.

Construir um chatbot com ChatterBot não é apenas simples, mas também, os resultados são precisos. Com o avanço da Inteligência Artificial e Aprendizado de Máquina, é possível criar e alcançar tudo e qualquer coisa, seja criando bots com habilidades de conversação como humanos ou qualquer outra coisa que sua criatividade ordene.

Agora é com Você!!!

Compartilhe

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp
Share on print
imprimir
Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on print

O que achou deste artigo?

Leia também