PYTHON
Meu primeiro Chatbot com Python
O que eu vou fazer?
Nesta atividade, eu vou criar um chatbot, ou seja, um programa capaz de receber mensagens e responder ao usuário. Meu chatbot terá uma janela parecida com uma pequena tela de conversa. Eu poderei escrever uma mensagem, clicar em Enviar e receber uma resposta. Para construir o meu chatbot, vou utilizar principalmente coisas que já conheço em Python:
- textos;
- variáveis;
- entrada e saída de informações;
- if;
- elif;
- else.
Também vou conhecer o Tkinter, uma ferramenta do Python que permite criar janelas, botões e caixas de texto.
como meu chatbot vai pensar?
Meu chatbot não vai compreender as frases como uma pessoa. Eu vou ensinar algumas regras para ele. Por exemplo:
if «oi» in mensagem:
resposta = «Olá! Como você está?»
Essa regra significa: SE a palavra «oi» estiver na mensagem, ENTÃO o chatbot deverá responder «Olá! Como você está?».
Quanto mais regras eu criar, mais coisas meu chatbot conseguirá responder.
ETAPA 1. Criando minha janela
Primeiro, vou importar o Tkinter:
import tkinter as tk
Agora vou criar minha janela:
janela = tk.Tk()
janela.title(«Meu Chatbot»)
janela.geometry(«500×500»)
Vou executar meu programa. O que aconteceu? Uma janela apareceu!
ETAPA 2. Colocando um título
Agora quero colocar um título dentro da minha janela. Vou escrever:
titulo = tk.Label(
janela,
text=»Meu primeiro Chatbot «,
font=(«Arial», 20)
)
titulo.pack(pady=10)
Vou executar novamente e observar o resultado.
ETAPA 3. Criando o espaço da conversa
Preciso de um lugar para mostrar as mensagens. Vou acrescentar:
conversa = tk.Text(
janela,
width=55,
height=18
)
conversa.pack(pady=10)
Agora minha janela possui um espaço onde futuramente aparecerá a conversa.
ETAPA 4. Criando o lugar onde vou escrever
Também preciso de uma caixa para digitar minha mensagem. Vou acrescentar:
entrada = tk.Entry(
janela,
width=45
)
entrada.pack(pady=10)
Vou executar novamente. Agora já consigo escrever dentro da janela! Mas ainda existe um problema: meu chatbot não sabe responder. Está na hora de ensiná-lo.
ETAPA 5. Criando o cérebro do meu chatbot
Agora vou criar uma parte muito importante do programa. Vou escrever:
def conversar():
mensagem = entrada.get()
mensagem = mensagem.lower()
if «oi» in mensagem:
resposta = «Olá! Que bom conversar com você!»
elif «nome» in mensagem:
resposta = «Meu nome é Boti!»
elif «python» in mensagem:
resposta = «Python é uma linguagem de programação muito legal!»
else:
resposta = «Ainda não sei responder isso.»
Existe algo novo aqui: def conversar():
Essa instrução cria uma função. Por enquanto, posso imaginar uma função como uma caixinha que guarda várias instruções que serão executadas juntas. Eu não preciso decorar como criar funções neste momento. Vou apenas perceber que todas as instruções abaixo de def conversar(): fazem parte da ação conversar.
ETAPA 6. Entendendo a inteligência do meu chatbot
Vou observar esta parte:
if «oi» in mensagem:
resposta = «Olá! Que bom conversar com você!»
in significa aproximadamente «está dentro de». Então: «oi» in mensagem pergunta: A palavra «oi» está dentro da mensagem?
Se eu escrever:
oi
a resposta será:
Olá! Que bom conversar com você!
Mas também posso escrever:
Oi, tudo bem?
A palavra «oi» continua dentro da mensagem!
ETAPA 7. Por que usamos .lower()?
Existe esta instrução:
mensagem = mensagem.lower()
Ela transforma as letras da mensagem em minúsculas. Por exemplo:
OI → oi
Python → python
ESCOLA → escola
Assim, meu chatbot consegue reconhecer melhor as palavras.
ETAPA 8. Mostrando a resposta
Meu chatbot já consegue escolher uma resposta, mas preciso mostrá-la na janela. Dentro da função conversar, depois das condicionais, vou acrescentar:
conversa.insert(tk.END, «Você: » + mensagem + «\n»)
conversa.insert(tk.END, «Bot: » + resposta + «\n\n»)
entrada.delete(0, tk.END)
Essas instruções mostram minha mensagem, mostram a resposta do chatbot e apagam o campo de digitação para eu escrever uma nova mensagem.
ETAPA 9. Criando o botão Enviar
Agora preciso de um botão. Vou acrescentar:
botao = tk.Button(
janela,
text=»Enviar»,
command=conversar
)
botao.pack()
Quando eu clicar nesse botão, o Python executará:
conversar
Ou seja, executará as regras que criei para o meu chatbot.
ETAPA 10. Mantendo minha janela aberta
No final do programa, vou escrever: janela.mainloop()
Essa instrução mantém minha janela funcionando enquanto eu estiver utilizando o chatbot.
Minha missão: tornar o chatbot mais inteligente
Meu chatbot ainda conhece poucas palavras. Minha missão agora é ensiná-lo a conversar sobre novos assuntos. Vou acrescentar pelo menos 5 novas regras usando elif.
Por exemplo:
elif «jogo» in mensagem:
resposta = «Eu gosto de jogos! Qual é o seu favorito?»
Mas não preciso usar essa regra. Posso criar as minhas próprias! Meu chatbot pode ser, por exemplo:
Chatbot Gamer — conversa sobre jogos.
Chatbot Esportivo — conversa sobre esportes.
Chatbot dos Animais — conversa sobre animais.
Chatbot da Escola — ajuda com assuntos escolares.
Chatbot do Meio Ambiente — conversa sobre natureza e sustentabilidade.
Também vou escolher um nome para o meu chatbot. Além disso, Vou tentar fazer meu chatbot reconhecer duas palavras diferentes para produzir a mesma resposta. Por exemplo:
if «oi» in mensagem or «olá» in mensagem:
resposta = «Olá! Como você está?»
Agora ele reconhece Oi! e também: Olá!
Posso fazer isso com outras palavras!
Para pensar
Depois de terminar meu chatbot, vou conversar com ele durante alguns minutos. Vou tentar fazer perguntas que eu não programei. Depois, vou responder:
1. Meu chatbot conseguiu responder tudo o que perguntei? Por quê?
2. O que acontece quando escrevo algo que não está nas regras?
3. Quanto mais condicionais eu acrescentar, meu chatbot ficará melhor?
4. O chatbot realmente compreende o significado do que estou escrevendo?
5. Qual é a diferença entre esse chatbot e ferramentas de Inteligência Artificial que conseguem conversar sobre milhares de assuntos?