Pular para o conteúdo principal
InicioTutoriaisPython

Criar um chatbot usando o Chatterbot em Python

Neste tutorial, você aprenderá a criar um chatbot usando o chatterbot em Python.
Actualizado 11 de set. de 2024  · 12 min leer

Você está cansado de esperar em longas filas para que sua chamada seja conectada ao executivo de atendimento ao cliente? Ler as perguntas frequentes faz você se sentir letárgico? 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 por causa de um item errado que foi entregue a você? Há uma grande probabilidade de que você tenha sido atendido por um bot em vez de um representante do atendimento ao cliente. Então, o que são exatamente os bots? Como podemos criar um? Que fonte de código você precisa? Essas são algumas das perguntas que serão respondidas nesta postagem do blog!

A inteligência artificial, que traz em seu bojo o aprendizado de máquina e o processamento de linguagem natural (NLP) para a criação de bots ou chatbots, foi projetada especificamente para desvendar a interação harmoniosa entre humanos e computadores. Os chatbots estão em todos os lugares, seja em sites de bancos, pizzarias ou lojas de comércio eletrônico, você encontrará chatbots a torto e a direito. Os chatbots fornecem assistência ao atendimento ao cliente em tempo real em uma série de perguntas predefinidas relacionadas ao domínio em que foram criados. Ele adapta a linguagem humana natural e conversa com os humanos de maneira semelhante à humana.

Para simplificar a definição de chatbot, podemos dizer que os chatbots são a evolução dos sistemas de perguntas e respostas que empregam o 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, sendo 30,2% 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 a COVID ou o que pode ser benéfico para aumentar a imunidade, ou se o vírus foi desenvolvido em um laboratório. Para acabar com essas fraudes, o Facebook lançou um chatbot que funciona como um verificador de fatos.

Você tem interesse em criar um chatbot com ferramentas como OpenAI e Pinecone? Confira nosso code-along abaixo: 

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". Ele 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 desenvolvido para imitar a maneira como os seres humanos se comunicam entre si. Isso pode ser feito por meio de uma interface de bate-papo ou por chamada de voz. Os desenvolvedores geralmente projetam chatbots de modo que seja difícil para os usuários saberem se estão se comunicando com uma pessoa ou com um robô.

Os chatbots ajudam qualquer empresa/organização a atingir os seguintes objetivos:

  • Aumenta a eficiência operacional.
  • Automatizar o atendimento às solicitações dos clientes.
  • 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.
  • Você economiza tempo e esforço ao automatizar o suporte ao cliente.
  • Melhora a taxa de resposta e o envolvimento do cliente.
  • Personalização da comunicação
Gráfico de bot de voo
Fonte

Como funciona um Chatbot?

Os chatbots nada mais são do que aplicativos de software que têm uma camada de aplicativo, um banco de dados e APIs. Para simplificar o funcionamento do chatbot, podemos dizer que ele trabalha com a 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 inserido nele. Os chatbots são de diferentes tipos, dependendo de como são usados. Basicamente, há três tipos de chatbots, que são os seguintes:

  • Chatbot baseado em regras: Esse é o chatbot 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 determinadas 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 frequentes quando se trata de consultas complexas; eles nem sempre são a melhor solução.

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

  • Chatbots de PNL (contextual): Até o momento, esses são os chatbots mais avançados. Eles são uma combinação do melhor dos chatbots baseados em regras e em 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 facilmente com várias solicitações do mesmo usuário.

Comparações de plataformas de chatbot

Muitas plataformas oferecem chatbots personalizados com automação, disponibilizando aos clientes serviços de suporte ininterruptos, sempre pontuais e de primeira classe, sempre que eles precisarem, sem as capacidades de conversação da caixa. Os clientes também estão dispostos a comprar de uma empresa com a qual possam se conectar facilmente por meio de mensagens.

Listando a plataforma de criação de chatbot de IA em 2020:

  • 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 dessa ferramenta é que ela permite que usuários não técnicos criem 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 de acordo com os requisitos. Outro recurso excelente é a capacidade de salvar as respostas dos usuários em um formulário que pode ser facilmente exportado para um arquivo 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 aprendizagem profunda e PNL para entender o contexto do texto. Ele oferece um console fácil de usar para criar um chatbot em minutos.

  • Mobile Monkey: O Mobile Monkey oferece aos desenvolvedores a possibilidade de criar chatbots especificamente para fins de marketing. Ele permite que os desenvolvedores criem 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 avançado do bot, pois permite que os desenvolvedores conectem diferentes APIs em cada interação com o usuário. O ChatterOn oferece mais de 20 parafusos pré-construídos que podem ser usados com um único clique. Ele não requer muita codificação, o que facilita a criação de chatbots por usuários não técnicos.

  • TARS: Ele permite que você crie uma página de destino conversacional, que possibilita a criação de um chatbot automatizado para cumprimentar os clientes, fornecer informações relevantes sobre as dúvidas deles em relação aos seus produtos e solicitar o contato deles simultaneamente. O Tars oferece muitos modelos de chatbot predefinidos, que são classificados em duas partes: por setor e por caso de uso.

A esta altura, você deve estar curioso para criar seu próprio chatbot. E o que é melhor do que um chatbot de PNL personalizável? Vamos começar a criar nosso próprio chatbot em Python usando a biblioteca chatterbot.

Chatterbot

chatterbot

Como o nome sugere, chatterbot é uma biblioteca python projetada especificamente para gerar chatbots. Esse 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 participar de conversas. Ele começa criando um chatterbot não treinado que não tem experiência ou conhecimento prévio sobre como se comunicar. À medida que os usuários inserem declarações, a biblioteca salva a solicitação feita pelo usuário e também salva as respostas que são enviadas de volta aos usuários. À medida que o número de instâncias aumenta no chatterbot, a precisão das respostas dadas 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 dentre as respostas já existentes. O USP do chatterbot é que ele permite que os desenvolvedores criem seus próprios conjuntos de dados e estruturas com facilidade.

Criação de um Chatbot usando o Chatterbot

Vamos começar instalando a biblioteca chatterbot. Para criar o chatbot, você também precisa instalar o corpus do chatterbot. Corpus - no sentido 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 é do que um protótipo de diferentes instruções de entrada e suas respostas. Esses corpus são usados pelos bots para se treinarem. O método mais recomendado para instalar o chatterbot e o chatterbot_corpus é usar o pip.

Comandos de instalação para o terminal:

pip install chatterbot
pip install chatterbot_corpus

Comandos de instalação para o Jupyter Notebook:

!pip install chatterbot
!pip install chatterbot_corpus

Primeiro, vamos importar a classe Chatbot do módulo chatterbot.

# Importing chatterbot
from chatterbot import ChatBot

Criar instância do Chatbot

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

# Create object of ChatBot class
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 unidade de armazenamento ou rede específica. Para usar um adaptador de armazenamento, você precisa especificá-lo. Posicionaremos o adaptador de armazenamento atribuindo-o ao caminho de importação do armazenamento que queremos 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 database, criaremos um novo banco de dados SQLite. Siga o código abaixo para criar um novo banco de dados para o chatbot.

# Create object of ChatBot class with 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 de chatbot. Como o nome indica, o Logical Adapter regula a lógica por trás do chatterbot, ou seja, ele escolhe respostas para qualquer entrada fornecida a ele. Esse parâmetro contém uma lista de operadores lógicos. O Chatterbot permite que você use vários adaptadores lógicos. Quando mais de um adaptador lógico for usado, 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.

# Create object of ChatBot class with Logic Adapter
bot = ChatBot(
    'Buddy',  
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.TimeLogicAdapter'],
)

Treinamento do chatbot

Agora, a etapa final da criação de um chatbot é treiná-lo usando os módulos disponíveis no chatterbot. Para treinar um chatbot usando o chatterbot, basta que você forneça uma conversa ao 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 o ListTrainer, criar seu objeto passando o objeto Chatbot e chamar o método train() passando uma lista de frases.

# Inport ListTrainer
from chatterbot.trainers import ListTrainer

trainer = ListTrainer(bot)

trainer.train([
'Hi',
'Hello',
'I need your assistance regarding my order',
'Please, Provide me with your order id',
'I have a complaint.',
'Please elaborate, your concern',
'How long it will take to receive an order ?',
'An order takes 3-5 Business days to get delivered.',
'Okay Thanks',
'No Problem! Have a Good Day!'
])
List Trainer: [####################] 100%

Teste de chatbot

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

# Get a response to the input text 'I would like to book a flight.'
response = bot.get_response('I have a complaint.')

print("Bot Response:", response)
Bot Response: Please elaborate, your concern

Criaremos um loop while para que nosso chatbot seja executado. Quando as instruções forem passadas no loop, receberemos uma resposta apropriada, pois já inserimos os dados em nosso banco de dados. Se o usuário disser "tchau" ou "tchau", podemos encerrar o loop e parar o programa.

name=input("Enter Your Name: ")
print("Welcome to the Bot Service! Let me know how can I help you?")
while True:
    request=input(name+':')
    if request=='Bye' or request =='bye':
        print('Bot: Bye')
        break
    else:
        response=bot.get_response(request)
        print('Bot:',response)
Enter Your Name: Avinash
Welcome to the Bot Service! Let me know how can I help you?
Avinash:I need your assistance regarding my order
Bot: Please, Provide me with your order id
Avinash:12345
Bot: No Problem! Have a Good Day!
Avinash:Bye
Bot: Bye

Conclusão

Parabéns, você chegou ao final deste tutorial!

Este artigo foi baseado no aprendizado de como criar um chatbot em Python usando a biblioteca ChatterBot. Criar um chatbot com o ChatterBot não foi apenas simples, mas também os resultados foram precisos. Com o avanço da inteligência artificial e do aprendizado de máquina, tudo é possível, seja criando bots com habilidades de conversação como os humanos ou qualquer outra coisa. Confira o tutorial da DataCamp sobre Implantação de chatbots do Facebook com Python.

explore o banner da biblioteca de cursos de python da datacamp
Temas

Saiba mais sobre Python

Certificação disponível

Course

Introdução ao Python

4 hr
5.7M
Domine os conceitos básicos de análise de dados com Python em apenas quatro horas. Neste curso on-line, você conhecerá a interface Python e explorará pacotes populares.
See DetailsRight Arrow
Start Course
Ver maisRight Arrow