Blog

Postado em em 6 de abril de 2023

Como Usar a API do ChatGPT

Nesta aula vamos aprender como usar a API do ChatGPT para criar uma requisição de e-mail automática e também a como tratar a resposta.

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:

Fala Impressionadores! Na aula de hoje eu quero te mostrar como usar a API do ChatGPT no Python para que você consiga complementar seus códigos com essa API.

Na verdade, vamos fazer o uso da API OpenAI e dentro dela é que vamos utilizar o modelo do ChatGPT. Ele vai funcionar como o ChatGPT normalmente, só que você vai fazer o uso dele dentro do seu código.

Isso quer dizer que você pode fazer uma automação já utilizando o ChatGPT para complementar seu resultado.

E aí, quer saber como usar a API do ChatGPT para melhorar ainda mais os seus códigos? Então vem comigo que eu vou te mostrar o passo a passo.

Nesta aula vou usar o Python para exemplificar, mas ao longo da aula você vai ver que vai funcionar para qualquer linguagem de programação. Porque esse processo de fazer uma requisição e receber uma resposta é um processo comum em qualquer linguagem.

Vamos entrar no site do ChatGPT -> selecione Referência da API -> aqui você tem acesso à documentação

referência da API
referência da API

Como Usar a API do ChatGPT

O que vamos fazer nesta aula está descrito na documentação, vamos seguir as orientações descritas para Python.

A primeira coisa que precisamos fazer é autenticar, o ChatGPT permite usar as APIs de forma gratuita até um certo momento, depois se você quiser continuar usando como solução para seus projetos vai precisar optar por um plano pago.

Chave de API

Vamos ter que criar uma chave de API está na documentação.

chave de API
chave de API

Copie a chave -> crie no seu arquivo Python uma pasta que vai conter apenas as senhas, coloque um nome intuitivo na pasta como “senha”.

Dentro deste arquivo escreva:

API_KEY = (Cole aqui a chave)

Feito isso, vamos importar a chave:

From senha import API_KEY

E importar algumas bibliotecas:

Import requests

Import JSON

É importante importar a biblioteca JSON porque tanto o pedido de requisição quanto a resposta da requisição vão ser feitos no formato JSON.

A biblioteca JSON já vem instalada no Python, mas a biblioteca requests tem que ser instalada, no terminal digite:

>pip install requests

Obs. É necessário estar conectado à internet.

Agora vamos fazer uma requisição do tipo get() para isso vamos usar uma autenticação, dessa vez diferente da anterior onde clicamos em “chaves de API”, vamos usar agora a chave -> Authorization: (copie a chave)

autenticação
autenticação

Vamos criar um dicionário de headers para colocar o código de autenticação e passar na primeira linha a chave entre aspas e depois o código. Em seguida podemos fazer a requisição

Headers = {“Authorization”: “Bearer OPENAI_API_KEY”}

Requisição = requests.get(link, headers=headers)

Nos já chamamos a chave de API_KEY e neste caso estamos lidando com uma variável em um texto então temos que colocar o “f” no início e deixar a variável entre chaves:

Headers = {“Authorization”: f“Bearer {API_KEY}”}

Requisição = requests.get(link, headers=headers)

Agora temos que mostrar ao código qual link queremos usar.

Vamos deixar disponíveis todos os modelos que pudermos utilizar, o ChatGPT esta entre esses modelos.

link


link

Vamos copiar o código https do List models e criar uma variável para este link

Headers = {“Authorization”: f“Bearer {API_KEY}”}

Link = “https://api.openai.com/v1/models”

Requisicao = requests.get(link, headers=headers)

Agora vamos fazer um print para verificar a resposta das aquisições

Headers = {“Authorization”: f“Bearer {API_KEY}”}

Link = “https://api.openai.com/v1/models”

Requisicao = requests.get(link, headers=headers)

Print (requisicao)

Print (requisição.text)

Observe que no resultado vai ter uma linha escrito <Response [200]>

Isso significa que a requisição deu certo, se você tem dúvidas sobre como fazer requisições temos uma aula aqui no canal, temos também uma aula de automação no Python.

Agora que a requisição deu certo temos diversos modelos diferentes de inteligência artificial disponíveis além do ChatGPT no resultado, porem teremos que encontrar a parte referente ao ChatGPT.

Para encurtar esse processo de procurar o modelo que queremos, copie todo o resultado da requisição e cole em um bloco de notas.

No bloco de notas, use o atalho Control + F para pesquisar por GPT e encontrar o código ChatGPT.

control + f
control + f

Hoje, (dia 31/03) que estou gravando esta aula o código para o ChatGPT é o “gpt-3-5-turbo-0301”.

Como Usar a API do ChatGPT
GPT
Headers = {“Authorization”: f“Bearer {API_KEY}”}

Link = “https://api.openai.com/v1/chat/completions _”

Requisicao = requests.get(link, headers=headers)

Print (requisicao)

Print (requisição.text)

Id_modelo = “gpt-3-5-turbo-0301”

Como o API funciona?

Este modelo do ChatGPT é um modelo do tipo chat, vamos clicar em chat na página da documentação.

Como Usar a API do ChatGPT
chat – link

Nesta página está explicando que para o API do ChatGPT funcionar é necessário fazer uma requisição do tipo post.

Vamos mudar o tipo da nossa requisição para post (estava get) e vamos ter que modificar o link também.

O link da imagem acima vamos copiar e trocar no link no nosso código

Headers = {“Authorization”: f“Bearer {API_KEY}”}

Link = “https://api.openai.com/v1/chat/completions _”

Id_modelo = “gpt-3-5-turbo”

Requisicao = requests.post(link, headers=headers)

Print (requisicao)

Print (requisição.text)

Sempre que fazemos uma requisição do tipo post temos que mandar alguns parâmetros, obrigatoriamente temos que informar o modelo e as mensagens.

Como Usar a API do ChatGPT
mensagem

O modelo já passamos no código, agora vamos passar as mensagens, observe que existe o exemplo na própria documentação.

Na prática, teremos que criar uma variável e nela colocar o modelo e o corpo da mensagem, as mensagens são uma lista de vários dicionários que contêm o corpo da mensagem. Neste caso vamos mandar apenas uma mensagem e iremos receber apenas uma resposta.

Headers = {“Authorization”: f“Bearer {API_KEY}”}
Link = “https://api.openai.com/v1/chat/completions _”

Id_modelo = “gpt-3-5-turbo”

Body_mensagem = {

        “model”: id_modelo,

        “messages”: [{“role”: “user”, “content”: “escreva um e-mail para o meu chefe dizendo a previsão do preço do dólar nos próximos 2 meses”}]

}

Requisicao = requests.post(link, headers=headers)

Print (requisicao)

Print (requisição.text)

JSON

Essa comunicação que fizemos com API deve ser feita por meio do JSON como comentei no início da aula, para isso, temos que transformar este dicionário padrão que estamos usando em um JSON. Vamos fazer da seguinte forma:

Body_mensagem = json.dumps(body_mensagem)

Esta linha de código vai transformar nosso dicionário padrão em um JSON.

Agora temos que passar essa informaçã a requisição para que ela funcione, então, vamos acrescentar mais um parâmetro:

Headers = {“Authorization”: f“Bearer {API_KEY}”}

Link = “https://api.openai.com/v1/chat/completions _”

Id_modelo = “gpt-3-5-turbo”

Body_mensagem = {

        “model”: id_modelo,

        “messages”: [{“role”: “user”, “content”: “escreva um e-mail para o meu chefe dizendo a previsão do preço do dólar nos próximos 2 meses”}]

}

Body_mensagem = json.dumps(body_mensagem)

Requisicao = requests.post(link, headers=headers, data=Body_mensagem)

Print (requisicao)

Print (requisição.text)

Feito isso vamos rodar o código, observe que agora ele vai demorar mais um pouco a concluir e quando concluiu gerou um erro. Segundo o código tem alguma coisa inválida, Porque?

Isso acontece porque quando fazemos uma requisição do tipo post e enviamos uma informação, a API pede que essa informação seja no formato JSON, mas, na verdade, existem alguns outros formatos que podem ser enviados para uma API.

Estamos usando o formato JSON porque ele é um formato padrão e prático.

Vamos à linha de código do headers e ali passar mais um parâmetro nas chaves, “content-type”: “Application/json”}

Headers = {“Authorization”: f“Bearer {API_KEY}”, “content-type”: “Application/json” }

Link = “https://api.openai.com/v1/chat/completions _”

Id_modelo = “gpt-3-5-turbo”

Body_mensagem = {

        “model”: id_modelo,

        “messages”: [{“role”: “user”, “content”: “escreva um e-mail para o meu chefe dizendo a previsão do preço do dólar nos próximos 2 meses”}]

}

Body_mensagem = json.dumps(body_mensagem)

Requisicao = requests.post(link, headers=headers, data=Body_mensagem)

Print (requisicao)

Print (requisição.text)

Agora podemos rodar o código que vai reconhecer o formato JSON e enviar a resposta neste formato também.

Resultado

Existem diversas informações na resposta, mas vamos nos focar na palavra “choices” que são as escolhas que o ChatGPT fez, aqui encontramos uma lista que contêm um dicionário com a mensagem que passamos para o código, nesta parte da resposta vamos ver um email inteiro, com a questão que mandamos ao ChatGPT  e a resposta que ele encontrou.

Como fazer para extrair a informação dessa resposta no formato JSON.

Para isso vamos substituir o último print por uma linha de código que vai transformar a resposta que estamos recebendo para o formato de um dicionário Python.

Headers = {“Authorization”: f“Bearer {API_KEY}”, “content-type”: “Application/json” }
Link = “https://api.openai.com/v1/chat/completions _”

Id_modelo = “gpt-3-5-turbo”

Body_mensagem = {

        “model”: id_modelo,

        “messages”: [{“role”: “user”, “content”: “escreva um e-mail para o meu chefe dizendo a previsão do preço do dólar nos próximos 2 meses”}]

}

Body_mensagem = json.dumps(body_mensagem)

Requisicao = requests.post(link, headers=headers, data=Body_mensagem)

Print (requisicao)

Resposta = requisição.json()

Mensagem = resposta [“choices”][0][“message”][“content”]

Print(mensagem)

Observe que na última linha estamos dizendo que a mensagem que o programa nos deu como resposta será a variável resposta que criamos quando pegando o primeiro elemento da lista “choices”.

O primeiro item da lista “choices” tambem é um dicionário e deste dicionário queremos pegar apenas a mensagem que é representada pela palavra “content”. Feito isso na próxima linha só precisamos printar a mensagem e vamos obter a resposta legivel no formato JSON.

Conclusão – Como Usar a API do ChatGPT

Você sabia que podemos usar a API do ChatGPT, como utilizar as bibliotecas e como fazer para mandar um e-mail personalisado com esta API?

Nesta aula vimos tudo isso e mais em um passo a passo bem direto ao ponto.

Espero que tenham gostado! Até breve,

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer sair do zero no Power BI e virar uma referência na sua empresa? Inscreva-se agora mesmo no Power BI Impressionador