Aprenda como criar um ChatBot com ChatGPT em Python em questão de minutos! Crie um robô capaz de manter uma conversa coesa e conectada!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Criando um ChatBot com ChatGPT em Python em Apenas 20 Minutos
Na aula de hoje, vou mostrar como criar um ChatBot com Python usando o ChatGPT em poucos minutos.
Utilizaremos a biblioteca OpenAI para incorporar o ChatGPT em nosso código Python e desenvolver um ChatBot, aqueles robôs que mantêm conversas com você.
Nosso código será responsável por transmitir a mensagem do usuário para o ChatGPT e exibir a resposta.
Além disso, vamos armazenar o histórico da conversa para que o ChatGPT saiba o que foi enviado anteriormente, mantendo assim uma conversa que faça sentido e esteja conectada ao contexto.
Então, faça o download do material disponível e vamos aprender a criar um ChatBot em Python com ChatGPT.
Biblioteca OpenAI
Para construirmos nosso ChatBot com ChatGPT em Python vamos precisar utilizar a biblioteca OpenAI, que permite a integração entre o ChatGPT e o Python.
Para instalá-la, basta abrir o terminal no seu editor de código e executar o comando:
pip install openai
Depois disso, importamos a biblioteca para o nosso código:
import openai
A OpenAI oferece várias soluções de Inteligência Artificial, sendo o ChatGPT uma delas. Portanto, além de instalar a biblioteca, é importante obter uma chave de API da OpenAI.
Para gerar sua chave de API, acesse o site da OpenAI e faça o login (caso você não tenha uma conta, será necessário criar uma).
Com o login feito, selecione o menu da API.

Dentro dessa página, teremos a documentação da API com os guias completos de instalação e configuração das funcionalidades que podemos utilizar. Para essa aula vamos usar a Chat completions API.

Ainda nessa página, no canto superior direito, você precisa clicar no seu usuário e selecionar a opção View API Keys.

Essa opção te levará para a página de criação de chaves da API, nela, basta você clicar em Create new secret key que sua chave será gerada.

Depois de criar sua chave da API, vamos configurá-la dentro do código.
Obs: É importante manter sua chave da API guardada de forma segura. Portanto, caso planeje compartilhar seu código, é altamente recomendado proteger sua chave de API.
import openai
chave_api = "sua_chave_aqui"
openai.api_key = chave_api
Dessa forma, você está fornecendo à OpenAI a chave da sua API para que possa ser utilizada em seu código.
Função Enviar Mensagem – ChatBot em Python com ChatGPT
Nosso objetivo é criar um ChatBot em Python que seja capaz de receber uma mensagem, analisá-la e enviar uma resposta.
Para isso, começaremos criando a função enviar_mensagem. Essa função recebe uma mensagem como parâmetro, a envia para o ChatGPT e retorna a resposta fornecida pelo ChatGPT.
Essa resposta será gerada através da função create do módulo ChatCompletion da biblioteca OpenAI. Para esta função, precisamos especificar o modelo (versão) do ChatGPT que desejamos utilizar.
Além disso, é necessário definir o parâmetro messages, que é uma lista de dicionários. Dentro dessa lista, criamos um dicionário que contém informações sobre quem está enviando a mensagem para o chat, no caso, o usuário (“role”: “user”) e o conteúdo dessa mensagem (“content”: mensagem).
def enviar_mensagem(mensagem):
resposta = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = [
{"role": "user", "content": mensagem}
],
)
Com esse código, conseguimos enviar a mensagem para o ChatGPT e receber uma resposta dele.
A resposta é retornada no formato de um dicionário que contém a chave “choices“, que essencialmente é a resposta em si, bem como várias outras informações associadas a essa resposta (id, modelo, objeto, uso, etc).

Como estamos interessados na mensagem da resposta, nossa função é configurada para retornar apenas o valor associado à chave “message” dentro da lista associada à chave “choices”.
def enviar_mensagem(mensagem):
resposta = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = [
{"role": "user", "content": mensagem}
],
)
return resposta["choices"][0]["message"]
Dentro dessa resposta, teremos o role definido como assistant pois é o ChatGPT quem está respondendo, e o content que é o conteúdo da resposta em si.
Para testar a função, fazemos um print, passando uma mensagem qualquer para o ChatGPT:
print(enviar_mensagem('Em que ano Einstein publicou a teoria geral da relatividade?'))

Perceba que a resposta foi gerada corretamente, incluindo a role e o conteúdo (content). Isso significa que a nossa função está funcionando.
No entanto, como mencionado anteriormente, o objetivo do nosso ChatBot é manter uma conversa com continuidade e coesão.
Portanto, é necessário aprimorar nossa função para que ela mantenha o histórico de mensagens entre o usuário e o ChatBot. Assim, a cada interação do usuário com o chat, além da mensagem atual, enviaremos para o ChatGPT todo o histórico da conversa.
Para fazer isso, adicionaremos um novo parâmetro à nossa função enviar_mensagem, que será uma lista de mensagens inicializada como vazia (lista_mensagens=[]).
Antes de gerar a resposta do ChatBot, adicionaremos a essa lista o dicionário de mensagem que havíamos definido anteriormente na função create.
Além disso, vamos definir dentro da função create que o parâmetro messages ao invés de ser o dicionário que estávamos utilizando anteriormente, que enviava uma única mensagem para o ChatGPT, será a nossa lista de mensaegens (lista_mensagem).
def enviar_mensagem(mensagem, lista_mensagens=[]):
lista_mensagens.append(
{"role": "user", "content": mensagem}
)
resposta = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = lista_mensagens,
)
return resposta["choices"][0]["message"]
Dessa forma, quando o usuário iniciar a conversa com o ChatGPT, a lista estará vazia, e a primeira mensagem enviada será adicionada a ela. Essa lista será enviada ao ChatGPT, que retornará uma resposta.
Tornando Nosso Código em uma Ferramenta
Nossa função responsável por enviar mensagens já está criada. Agora, precisamos desenvolver uma ferramenta para que nosso usuário possa interagir com o ChatBot.
Existem várias maneiras de fazer isso, como criar uma interface gráfica no Python com botões e janelas personalizadas. No entanto, essa abordagem exigiria mais tempo e desenvolvimento.
Como o foco desta aula é apenas construir a lógica e a estrutura do ChatBot em Python com o ChatGPT, optaremos por uma abordagem mais simples: criar um sistema de entrada, input, no Python para que o usuário possa conversar com o Chat pelo terminal.
A ideia é criar uma conversa contínua na qual o usuário pode falar e receber respostas conforme desejar. Para isso, vamos implementar um loop infinito usando o while, que só será encerrado quando o usuário digitar sair.
Vamos verificar o texto inserido pelo usuário usando uma estrutura condicional if. Portanto, se o texto fornecido no input pelo usuário for sair, o loop infinito será encerrado e a conversa será encerrada. Enquanto isso não acontecer, o usuário pode continuar conversando com o ChatBot à vontade.
Uma vez que desejamos manter a continuidade da conversa, como definimos em nossa função, usaremos uma lista para armazenar as mensagens enviadas e recebidas. Antes de iniciar o loop while, criaremos uma lista de mensagens vazia.
lista_mensagens = []
while True:
texto = input("Escreva aqui sua mensagem:")
if texto == "sair":
break
else:
resposta = enviar_mensagem(texto, lista_mensagens)
lista_mensagens.append(resposta)
print("Chatbot:", resposta["content"])
Dessa maneira, a cada iteração desse loop, o nosso programa coletará o texto do usuário. Se o texto for igual a sair, o programa encerrará a conversa. Caso contrário, ele enviará a mensagem para o ChatGPT e receberá a resposta do ChatGPT.
Essa resposta será fornecida no formato de um dicionário, como já vimos anteriormente. Portanto, a armazenaremos em nossa lista_mensagens para criar o histórico da conversa. Exibiremos para o usuário apenas o conteúdo (content) dessa resposta (resposta[‘content’]), que é a mensagem do ChatGPT.
Código Completo do ChatBot em Python com ChatGPT
import openai
chave_api = "sua_chave_aqui"
openai.api_key = chave_api
def enviar_mensagem(mensagem, lista_mensagens=[]):
lista_mensagens.append(
{"role": "user", "content": mensagem}
)
resposta = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = lista_mensagens,
)
return resposta["choices"][0]["message"]
lista_mensagens = []
while True:
texto = input("Escreva aqui sua mensagem:")
if texto == "sair":
break
else:
resposta = enviar_mensagem(texto, lista_mensagens)
lista_mensagens.append(resposta)
print("Chatbot:", resposta["content"])
Testando o ChatBot em Python com ChatGPT
Vamos realizar um teste agora para verificar se o nosso código do ChatBot em Python está funcionando corretamente, mantendo uma conversa coesa e contínua.

Assim, podemos confirmar que o nosso ChatBot está funcionando perfeitamente, fornecendo respostas rápidas e mantendo uma conversa coesa com o usuário.
Conclusão – Criando um ChatBot com ChatGPT em Python
Na aula de hoje, ensinei como criar um ChatBot em Python usando o ChatGPT em questão de minutos.
Através da biblioteca OpenAI, conseguimos conectar nosso ChatBot ao ChatGPT, criando um robô capaz de manter uma conversa coesa e conectada. Ao armazenar o histórico de conversa com o usuário, garantimos que as respostas sejam contextualmente relevantes.
Esse ChatBot em Python com ChatGPT já é um programa bem completo, criado rapidamente. No entanto, você pode levar isso adiante, integrando-o ao seu site, projeto ou sistema em que esteja trabalhando.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!

Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.