Como Criar um Chatbot Simples de Terminal em Python com Regras Pré-Definidas

Chatbots estão em toda parte: sites de e-commerce, serviços de atendimento ao cliente, assistentes virtuais como Alexa e Siri, e até em aplicativos de mensagens.

Mas você sabia que é possível criar um chatbot simples em Python que roda direto no terminal, sem precisar de inteligência artificial complexa?

Neste artigo, vamos mostrar passo a passo como criar um chatbot baseado em regras pré-definidas, ideal para iniciantes.


🔹 O que é um Chatbot de Regras?

Existem dois tipos principais de chatbots:

  1. Baseados em Regras → funcionam por meio de condições pré-definidas. O usuário escreve algo e o chatbot responde de acordo com palavras-chave ou frases conhecidas.

    • Exemplo: se o usuário digita “olá”, o bot responde “Olá, como vai?”.

  2. Baseados em Inteligência Artificial → usam NLP (Processamento de Linguagem Natural) e machine learning para interpretar o que o usuário quer dizer.

➡️ Aqui vamos construir o primeiro tipo, que é mais simples, rápido e ótimo para aprender.


🔹 Estrutura do Chatbot

Nosso chatbot terá:

  • Regras pré-definidas para responder a saudações, dúvidas simples e comandos básicos.

  • Um loop de interação para conversar até o usuário digitar “sair”.

  • Uso de condições e dicionários em Python para organizar as respostas.


🔹 Criando o Chatbot Passo a Passo

1. Configurando o esqueleto do chatbot

def chatbot():
    print("🤖 Chatbot: Olá! Eu sou seu assistente virtual. Digite 'sair' para encerrar.")

    while True:
        mensagem = input("Você: ").lower()

        if mensagem == "sair":
            print("🤖 Chatbot: Até logo!")
            break
        else:
            print("🤖 Chatbot: Ainda não sei como responder isso.")
            
chatbot()

➡️ Neste ponto, o chatbot só reconhece “sair” e responde com uma frase padrão.


2. Criando respostas pré-definidas

Podemos usar um dicionário para organizar regras.

respostas = {
    "olá": "Olá! Como posso te ajudar?",
    "oi": "Oi! Tudo bem?",
    "tchau": "Até mais! Volte sempre.",
    "como você está?": "Estou bem, obrigado por perguntar!",
    "qual é o seu nome?": "Eu sou um chatbot simples em Python 🤖"
}

Agora modificamos o loop para usar essas respostas:

def chatbot():
    respostas = {
        "olá": "Olá! Como posso te ajudar?",
        "oi": "Oi! Tudo bem?",
        "tchau": "Até mais! Volte sempre.",
        "como você está?": "Estou bem, obrigado por perguntar!",
        "qual é o seu nome?": "Eu sou um chatbot simples em Python 🤖"
    }

    print("🤖 Chatbot: Olá! Eu sou seu assistente virtual. Digite 'sair' para encerrar.")

    while True:
        mensagem = input("Você: ").lower()

        if mensagem == "sair":
            print("🤖 Chatbot: Até logo!")
            break
        elif mensagem in respostas:
            print("🤖 Chatbot:", respostas[mensagem])
        else:
            print("🤖 Chatbot: Não entendi. Pode repetir?")

3. Reconhecendo palavras-chave

Nosso chatbot ainda depende da frase exata. Se o usuário digitar “oi tudo bem?”, ele não reconhece. Vamos melhorar usando palavras-chave:

def responder(mensagem):
    if "oi" in mensagem or "olá" in mensagem:
        return "Olá! Como posso te ajudar?"
    elif "nome" in mensagem:
        return "Eu sou um chatbot simples em Python 🤖"
    elif "como você está" in mensagem:
        return "Estou ótimo! E você?"
    elif "tchau" in mensagem or "até mais" in mensagem:
        return "Até logo! Foi bom conversar com você."
    else:
        return "Não entendi. Pode repetir?"

def chatbot():
    print("🤖 Chatbot: Olá! Eu sou seu assistente virtual. Digite 'sair' para encerrar.")

    while True:
        mensagem = input("Você: ").lower()

        if mensagem == "sair":
            print("🤖 Chatbot: Até logo!")
            break
        else:
            resposta = responder(mensagem)
            print("🤖 Chatbot:", resposta)

chatbot()

➡️ Agora o chatbot responde mesmo que a frase não seja exatamente igual às regras.


4. Tornando o chatbot mais interativo

Podemos adicionar funcionalidades extras:

import datetime
import random

def responder(mensagem):
    if "oi" in mensagem or "olá" in mensagem:
        return "Olá! Como posso te ajudar?"
    elif "nome" in mensagem:
        return "Eu sou um chatbot simples em Python 🤖"
    elif "como você está" in mensagem:
        return "Estou ótimo! Obrigado por perguntar."
    elif "hora" in mensagem:
        return f"Agora são {datetime.datetime.now().strftime('%H:%M')}."
    elif "data" in mensagem:
        return f"Hoje é {datetime.datetime.now().strftime('%d/%m/%Y')}."
    elif "piada" in mensagem:
        piadas = [
            "Por que o livro de matemática ficou triste? Porque tinha muitos problemas.",
            "O que o zero disse para o oito? Belo cinto!",
            "Qual é o cúmulo da rapidez? Fechar a geladeira e estar dentro dela."
        ]
        return random.choice(piadas)
    elif "tchau" in mensagem or "até mais" in mensagem:
        return "Até logo! Foi bom conversar com você."
    else:
        return "Não entendi. Pode repetir?"

Agora temos um chatbot que responde de forma mais humana e divertida.


🔹 Possíveis melhorias

Esse chatbot pode ser expandido de várias formas:


🔹 Conclusão

Criar um chatbot simples de terminal com regras pré-definidas em Python é uma excelente forma de:
✔ Treinar lógica de programação.
✔ Aprender sobre dicionários, condições e loops.
✔ Criar um projeto divertido e funcional.

Esse projeto é ideal para quem está começando e quer algo que dá resultado imediato sem depender de IA avançada.


💡 Desafio para você:
Adicione ao seu chatbot a habilidade de responder perguntas sobre clima usando uma API gratuita (como a OpenWeather). Assim, seu bot ficará ainda mais útil! 

Comentários

Postagens mais visitadas deste blog

Manipulação de Arquivos no C#: Como Ler, Escrever e Trabalhar com Arquivos de Forma Simples

Laços de Repetição em Python: Conceitos e Exemplos Práticos

C# e Banco de Dados: Como Conectar e Realizar Operações com SQL Server