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)
This entry is parte 19 de 24 in the series Python + IA: Fundamentos e Projetos Práticos

Python + IA: Fundamentos e Projetos Práticos

Python para Iniciantes: Instalando o Ambiente, Sintaxe e Variáveis (Dia 1/30)

Ambiente, Sintaxe Básica e Variáveis em Python — Bootcamp Dia 1

Como Trabalhar com Listas no Python — Bootcamp Dia 6

Como Trabalhar com Listas no Python — Bootcamp Dia 6

Tuplas e Sets em Python — Estruturas Imutáveis e Conjuntos Inteligentes

Tuplas e Sets em Python — Estruturas Imutáveis e Conjuntos Inteligentes | Bootcamp Dia 7

Como Usar Dicionários em Python — Bootcamp Python + IA Dia 8

Dicionários em Python: chave e valor, o jeito inteligente de armazenar dados

Como Criar Funções em Python — Parâmetros, Retorno e Reutilização

Funções em Python: Escreva Menos, Faça Mais

Como Tratar Erros em Python com try, except e finally

Tratamento de Erros em Python: programe com segurança

Leitura e Escrita de Arquivos em Python

Leitura e Escrita de Arquivos em Python: salve seus dados no mundo real

Como Salvar Listas de Dicionários em Arquivo JSON com Python

Salvando Dados Estruturados com JSON em Python

Funções com Múltiplos Retornos em Python — Análise de Dados com Elegância

Funções com Múltiplos Retornos em Python: eficiência e organização

Parâmetros Opcionais e Valores Padrão em Python

Parâmetros Opcionais e Valores Padrão em Python

Como Usar args e kwargs em Funções Python

*args e **kwargs em Python: flexibilidade total nas funções

Como Usar List Comprehensions em Python

List Comprehensions em Python: código elegante e eficiente

Como Manipular Arquivos CSV com Python

Manipulando Arquivos CSV com Python: automatize leitura e escrita de dados

Como Usar Pandas em Python para Análise de Dados

Começando com Pandas em Python: análise de dados para IA e automações

Como Limpar e Preparar Dados com Pandas | Bootcamp Dia 20

Limpeza e Transformação de Dados com Pandas: preparando para IA

Como usar a OpenAI com Python (API Atualizada, GPT-3.5)

Inteligência Artificial com Python: Fundamentos e Primeira Integração com a OpenAI

Como Classificar Textos com IA e Python (Zero-Shot Classification)

Classificação de Texto com IA: Detectando Temas e Categorias

Como Criar Textos com Python e IA (NLP + GPT-2)

Geração de Texto com IA: Criando Respostas Inteligentes com Python

Como Criar um Chatbot com IA em Python (com DialoGPT)

Chatbot com IA em Python: Construindo um Assistente Inteligente

Como Detectar Fake News com Python e IA — Projeto Prático

Como Detectar Fake News com Python e IA

Como Criar uma Interface com IA em Python para Detectar Fake News

Como Criar uma Interface com IA em Python para Detectar Fake News

Como Avaliar a Qualidade de um Modelo de IA com Python

Como Avaliar a Qualidade de um Modelo de IA com Python — Além da Acurácia

Como Balancear Dados e Validar Modelos com Python e IA

Como Balancear Dados e Validar Modelos com Python e IA

Classificador de Fake News com Interface Web em Python (Streamlit)

Projeto Final: Criando um Classificador de Fake News com Interface Web em Python (Streamlit)

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

Python + IA: Fundamentos e Projetos Práticos

Geração de Texto com IA: Criando Respostas Inteligentes com Python Como 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}”)

    “`