![]() |
Python - Usando TensorFlow |
@CanalQb |
Como criar um chatbot básico com TensorFlow em Python
Chatbots são ferramentas úteis e poderosas na interação entre humanos e máquinas, e podem ser desenvolvidos com diferentes abordagens. Uma das maneiras mais didáticas de iniciar no tema é utilizando TensorFlow, uma das bibliotecas de machine learning mais populares e mantida pelo Google.
Pré-requisitos
- Python 3 instalado em seu sistema.
- Bibliotecas
tensorflow
enumpy
instaladas (viapip install tensorflow numpy
).
Descrição do exemplo
O código a seguir cria um chatbot extremamente simples com algumas perguntas e respostas fixas, utilizando uma rede neural do tipo LSTM (Long Short-Term Memory) para processar sequências de palavras e gerar uma resposta baseada em aprendizado supervisionado.
Código completo
import tensorflow as tf
import numpy as np
# Define perguntas e respostas
perguntas = ['Qual é o seu nome?', 'Como você está?', 'O que você faz?']
respostas = ['Meu nome é Chatbot', 'Estou bem, obrigado', 'Eu sou um chatbot']
# Mapeia palavras para índices
palavras = set()
for pergunta in perguntas:
palavras.update(pergunta.split())
for resposta in respostas:
palavras.update(resposta.split())
palavra_para_indice = {palavra: i for i, palavra in enumerate(palavras)}
indice_para_palavra = {i: palavra for palavra, i in palavra_para_indice.items()}
# Vetores de entrada e saída
entradas = []
saidas = []
for pergunta, resposta in zip(perguntas, respostas):
entrada = [palavra_para_indice[p] for p in pergunta.split()]
saida = [palavra_para_indice[r] for r in resposta.split()]
entradas.append(entrada)
saidas.append(saida)
entradas = np.array(entradas)
saidas = np.array(saidas)
# Modelo do chatbot
modelo = tf.keras.Sequential([
tf.keras.layers.Embedding(len(palavras), 100),
tf.keras.layers.LSTM(100),
tf.keras.layers.Dense(len(palavras), activation='softmax')
])
modelo.compile(loss='categorical_crossentropy', optimizer='adam')
# Treinamento (exemplo didático)
modelo.fit(entradas, saidas, epochs=500)
# Função para gerar resposta
def gerar_resposta(pergunta):
entrada = [palavra_para_indice[p] for p in pergunta.split()]
entrada = np.array([entrada])
saida = modelo.predict(entrada)[0]
resposta = ' '.join(indice_para_palavra[np.argmax(saida, axis=0)])
return resposta
# Loop de conversa
while True:
pergunta = input('Você: ')
print('Chatbot:', gerar_resposta(pergunta))
Importante
Este chatbot é extremamente limitado e serve apenas como introdução aos conceitos. Ele não possui compreensão de linguagem natural nem aprendizado real de conversação.
Como melhorar esse projeto?
- Adicionar pré-processamento de texto (remoção de pontuação, normalização, etc.).
- Utilizar bibliotecas de NLP como NLTK ou spaCy.
- Treinar com datasets reais de diálogos (como o Hugging Face).
- Implementar pipelines com
Tokenizer
epad_sequences
. - Usar modelos pré-treinados como o GPT-2 com o framework Transformers.
Conclusão
Com este exemplo básico, você teve um primeiro contato com a criação de chatbots usando TensorFlow. Embora rudimentar, esse projeto ajuda a entender como representar texto como números, usar embeddings e treinar redes neurais simples.
Continue explorando e estudando ferramentas de IA mais avançadas para construir aplicações mais robustas e inteligentes.
Mais tutoriais podem ser encontrados no canal @CanalQb.