Como Criar um ChatBot com ChatGPT em Python em Apenas 20 Minutos
Aprenda a criar um ChatBot com ChatGPT em Python em 20 minutos: instale a OpenAI, configure a API e construa um chatbot funcional e interativo.
O que você vai aprender?
Criando um ChatBot com ChatGPT em Python em Apenas 20 Minutos
Quer aprender a criar um ChatBot em Python usando o ChatGPT em apenas 20 minutos?
Neste guia prático, você vai ver como integrar a API da OpenAI ao Python, enviar mensagens, armazenar o histórico de conversa e testar um chatbot funcional.
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.
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
O que é um ChatBot com ChatGPT
Um chatbot é um programa desenvolvido para interagir com pessoas através de mensagens de texto, simulando uma conversa real.
Ele pode ser usado em sites, aplicativos, sistemas de atendimento ao cliente ou até mesmo em projetos pessoais, sempre com o objetivo de automatizar a comunicação e responder dúvidas de forma rápida.
O grande diferencial do ChatGPT é a capacidade de gerar respostas naturais e contextuais, ou seja, que fazem sentido dentro da conversa.
Diferente de chatbots tradicionais, que funcionam com respostas pré-programadas, o ChatGPT usa inteligência artificial treinada em linguagem natural para compreender a mensagem do usuário e responder de maneira coesa, mantendo o histórico da conversa.
Isso significa que você pode criar um chatbot em Python que não apenas responda perguntas, mas que também consiga manter um diálogo contínuo e realista, aproximando ainda mais a interação entre humanos e máquinas.
Instalando a 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 openaiDepois disso, importamos a biblioteca para o nosso código:
import openaiA 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.
Gerando e Configurando sua Chave de API
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_apiDessa 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.
Mantendo o Histórico da Conversa
Para manter o histórico da conversa 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.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes de Python
- Curso Básico de Python: Saia do Zero em 10 Aulas GrátisAprenda com o curso básico de Python gratuito da Hashtag: 10 aulas práticas, exercícios e projetos reais para sair do zero em programação.
- Agentes RAG com Python: como criar um assistente de IAAprenda a criar Agentes RAG com Python do zero: LangChain, FAISS e OpenAI para montar um assistente de IA que responde com base nos seus documentos.
- 25 Tipos de Gráficos em Python: Guia Completo com CódigoAprenda a criar os principais tipos de gráficos em Python com Plotly: barras, pizza, mapas e mais, com código pronto para copiar e usar.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.








