Aula 25 de 36 na série Python + IA: Fundamentos e Projetos Práticos
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
AutoTokenizereAutoModelForCausalLM: 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
.txtcom 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 IAACOMPANHE A SÉRIE
Não perca a próxima aula
Receba um aviso quando esta série continuar e, uma vez por semana, uma curadoria dos conteúdos mais úteis do site.
Uma resposta
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}”)
“`