Chatbot com IA em Python: Construindo um Assistente Inteligente

Aprenda a desenvolver um chatbot com IA usando Python e o modelo DialoGPT. Respostas inteligentes com memória de conversa e modo interativo.

Compartilhe

Como Criar um Chatbot com IA em Python (com DialoGPT)
Essa é a parte 19 de 24 na série Python + IA: Fundamentos e Projetos Práticos

Hoje você vai criar um chatbot com IA, que responde perguntas ou mantém conversas simples em linguagem natural. Vamos usar o modelo DialoGPT, da Microsoft, otimizado para diálogos em estilo de bate-papo.


🧠 O que é um Chatbot com IA?

É uma aplicação de Processamento de Linguagem Natural (NLP) que:

  • Interage com humanos via texto
  • Usa IA para compreender o contexto e gerar respostas
  • Pode ser usado para atendimento automático, FAQs, assistentes pessoais e mais

🧰 O que vamos usar

  • Python 3.10+
  • Biblioteca transformers
  • Modelo pré-treinado: microsoft/DialoGPT-medium

📦 Instalando os pacotes

pip install transformers
pip install torch

✍️ Código: Criando um chatbot interativo

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Carrega o modelo e tokenizer
tokenizer = AutoTokenizer.from_pretrained("microsoft/DialoGPT-medium")
modelo = AutoModelForCausalLM.from_pretrained("microsoft/DialoGPT-medium")

# Histórico de conversa (tokenizado)
histórico = []

print("🤖 Chatbot IA iniciado. Digite 'sair' para encerrar.\n")

while True:
    entrada = input("Você: ")
    
    if entrada.lower() == "sair":
        break

    # Codifica a entrada e anexa ao histórico
    nova_entrada_ids = tokenizer.encode(entrada + tokenizer.eos_token, return_tensors='pt')
    histórico.append(nova_entrada_ids)

    # Junta histórico para manter contexto
    entrada_modelo = torch.cat(histórico, dim=-1)

    # Gera resposta
    resposta_ids = modelo.generate(
        entrada_modelo,
        max_length=1000,
        pad_token_id=tokenizer.eos_token_id
    )

    # Decodifica a resposta
    resposta = tokenizer.decode(resposta_ids[:, entrada_modelo.shape[-1]:][0], skip_special_tokens=True)

    print(f"Bot: {resposta}")
    
    # Adiciona resposta ao histórico
    resposta_ids = tokenizer.encode(resposta + tokenizer.eos_token, return_tensors='pt')
    histórico.append(resposta_ids)

🧠 Explicando

  • AutoTokenizer e AutoModelForCausalLM: carregam automaticamente o modelo de linguagem
  • Histórico de conversa: é mantido para dar contexto ao bot
  • generate(): o modelo prevê a próxima frase com base no histórico

🎯 Desafio do Dia

Transforme esse chatbot em:

  • Um script de terminal que reinicia o histórico se o usuário digitar "reset"
  • Um modo “curto” onde o bot sempre responde com no máximo 1 frase
  • Bônus: salve o log da conversa em um arquivo .txt com timestamp
Navegação<< Geração de Texto com IA: Criando Respostas Inteligentes com PythonComo Detectar Fake News com Python e IA >>

Uma resposta

  1. Aquela ajudinha marota pra evoluir? Desafio com OpenAI:

    “`
    import openai

    # Define sua chave da API (deixe segura em produção)
    openai.api_key = “SUA_CHAVE”

    from openai import OpenAI

    client = OpenAI(api_key=openai.api_key)

    print(“🤖 Chatbot GPT-3.5 iniciado. Digite ‘sair’ para encerrar.\n”)

    while True:
    entrada = input(“Você: “)

    if entrada.lower() == “sair”:
    print(“🤖 Bot: Até logo!”)
    break

    resposta = client.chat.completions.create(
    model=”gpt-3.5-turbo”,
    messages=[
    {“role”: “system”, “content”: “Você é um assistente útil e sempre responde em português.”},
    {“role”: “user”, “content”: entrada}
    ]
    )

    print(f”🤖 Bot: {resposta.choices[0].message.content}”)

    “`

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.