Como integrar o ChatGPT no R e no Python?

O ChatGPT é um robô de conversação (chatbot) que usa um modelo grande de linguagem para possibilitar interação entre o usuário e o robô, como em uma conversa humana. Com essa tecnologia é possível enviar entradas textuais, como “Quanto é 10 mais 5?”, e receber saídas também textuais, como “10 mais 5 é igual a 15”. O robô ficou muito famoso após seu lançamento em 2022 pela empresa OpenAI.

Tela da aplicação ChatGPT da empresa OpenAI.

Neste tutorial mostramos como interagir com o modelo do ChatGPT através de comandos por linguagem de programação, em R e Python. Introduzimos o uso da API, a autenticação de usuário, o gerenciamento de chave de token e abordamos exemplos de interação. O objetivo é desenvolver uma base de conhecimento para possibilitar a construção de aplicações e produtos interessantes de Inteligência Artificial.

Interagindo com o ChatGPT por linguagem de programação

O nosso objetivo é demonstrar como interagir com um dos modelos do ChatGPT por código, ou seja, enviar entradas textuais e receber saídas textuais (perguntas e respostas) como na captura de tela acima, mas usando linguagem de programação. Faremos isso em até 30 linhas de comando.

Pré-requisitos

Para o procedimento proposto é necessário:

  1. Cadastrar uma conta de usuário em platform.openai.com
  2. Gerar uma chave-segredo da API em platform.openai.com/account/api-keys

Faça os procedimentos acima se você não tiver feito ainda e guarde a chave API em segurança.

Nota: contas novas na OpenAI podem receber créditos de uso da API gratuitamente, para finalidade de teste. Se você não tiver créditos é necessário adquiri-los no site da OpenAI para prosseguir com esse tutorial.

Após gerar uma chave API, defina uma variável de ambiente no seu ambiente de programação, conforme abaixo:

R


# 1) Rode o comando p/ definir sua chave:
Sys.setenv("OPENAI" = "SUA_CHAVE")

Python


# 1) Rode o comando:
import os
# 2) Rode o comando p/ definir sua chave:
os.environ["OPENAI"] = "SUA_CHAVE"

Substitua SUA_CHAVE pela chave API que você copiou no site da OpenAI.

Primeiros passos na API do ChatGPT

O ChatGPT e outros produtos da OpenAI possuem uma API extensa que descreve como usar os modelos por linguagem de programação, sem precisar acessar o site do ChatGPT manualmente. No site indicado acima é possível encontrar toda a documentação referente.

Nota: se você não sabe o que são APIs e quiser aprender, dê uma olhada nos cursos de introdução à programação da Análise Macro.

A documentação da API do ChatGPT é, como esperado, um tanto quanto técnica para usuários iniciantes. No entanto, é possível usar uma interface visual chamada “Playground” para aprender a dar os primeiros passos no uso da API.

Siga esses passos para construir sua primeira requisição com parâmetros para a API do ChatGPT:

  1. Navegue até platform.openai.com/playground
  2. Em System, digite uma entrada textual (por exemplo: “Quanto é 10 mais 5?”)
  3. Opcionalmente, escolha valores para parâmetros de interesse (modelo, temperatura, tamanho máximo, etc.)
  4. Clique em View code, selecione JSON e clique em Copy para copiar os parâmetros da requisição

Definindo o código de interação

Agora abra a IDE de sua preferência e um arquivo para escrever o código. Neste arquivo vamos começar definindo três coisas:

  1. Importar bibliotecas necessárias
  2. Definir a URL base da API, formada por “https://api.openai.com” mais o endpoint exibido na tela do Playground, ou seja, “/v1/chat/completions
  3. Parsear os parâmetros da requisição, obtidos nos primeiros passos, do formato JSON

Realizando tudo isso você deve chegar em um código parecido com o abaixo (adapte conforme achar melhor):

R


library(httr2)
library(jsonlite)

url_base <- "https://api.openai.com/v1/chat/completions"
entrada <- "Quanto é 10 mais 5?"
parametros_api <- jsonlite::fromJSON(
paste0(
'{
"model": "gpt-3.5-turbo",
"messages": [{"role": "system", "content": "', entrada, '"}],
"temperature": 1,
"max_tokens": 256,
"top_p": 1,
"frequency_penalty": 0,
"presence_penalty": 0
}'
)
)

Python


import os
import requests
import json

url_base = "https://api.openai.com/v1/chat/completions"
entrada = "Quanto é 10 mais 5?"
parametros_api = json.loads(
'''{
"model": "gpt-3.5-turbo",
"messages": [{"role": "system", "content": "''' + entrada + '''"}],
"temperature": 1,
"max_tokens": 256,
"top_p": 1,
"frequency_penalty": 0,
"presence_penalty": 0
}'''
)

Se você chegou até aqui, parabéns! Agora só falta fazer a requisição POST na API. Nessa etapa é necessário informar qual API/endpoint queremos fazer a requisição, quem somos (autenticação de usuário com chave API) e apontar quais os parâmetros da requisição (entrada textual, modelo, etc.).

O código abaixo exemplifica como fazer a requisição na API do ChatGPT e qual é o resultado retornado:

R


requisicao <- url_base |>
httr2::request() |>
httr2::req_auth_basic(username = "Bearer", password = Sys.getenv("OPENAI")) |>
httr2::req_body_json(parametros_api)

saida <- httr2::req_perform(req = requisicao)

httr2::resp_body_json(saida)$choices[[1]]$message$content

[1] "10 mais 5 é igual a 15."

Python


saida = requests.post(
url = url_base,
auth = ("Bearer", os.environ["OPENAI"]),
json = parametros_api
)

saida.json()["choices"][0]["message"]["content"]

'10 mais 5 é igual a 15.'

Dessa forma simples é possível interagir com a API do ChatGPT usando linguagem de programação. Não foi difícil, certo?

Para mais informações e detalhes consulte a documentação da API e das bibliotecas utilizadas.

Conclusão

Neste tutorial mostramos como interagir com o modelo do ChatGPT através de comandos por linguagem de programação, em R e Python. Introduzimos o uso da API, a autenticação de usuário, o gerenciamento de chave de token e abordamos exemplos de interação. O objetivo é desenvolver uma base de conhecimento para possibilitar a construção de aplicações e produtos interessantes de Inteligência Artificial.

Quer aprender mais?

 -  Cadastre-se gratuitamente aqui no Boletim AM e receba toda terça-feira pela manhã nossa newsletter com um compilado dos nossos exercícios com exemplos reais de análise de dados envolvendo as áreas de Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas;

 - Quer ter acesso aos códigos, vídeos e scripts de R/Python desse exercício? Vire membro do Clube AM aqui e tenha acesso à nossa Comunidade de Análise de Dados;

 - Quer aprender a programar em R ou Python com Cursos Aplicados e diretos ao ponto em Data Science, Econometria, Machine Learning, Macroeconomia Aplicada, Finanças Quantitativas e Políticas Públicas? Veja nossos Cursos aqui.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Análise regional do mercado de trabalho com dados do CAGED usando Python

Os microdados dos CAGED fornecem informações detalhadas a nível de cidade, sexo, raça, nível de instrução, idade, salário e outras sobre os trabalhadores formais do Brasil, possibilitando ricas análises regionais de dados. Neste artigo mostramos como acessar, processar e analisar estes dados utilizando o Python.

Transfer Learning: mostrando porque o Python está na ponta do desenvolvimento

A aprendizagem por transferência (transfer learning) é o reuso de um modelo pré-treinado em um novo problema. Portanto, sua utilização torna-se um avanço enorme para a previsão de diferentes tipos de variáveis, principalmente para aquelas ordenadas no tempo. Mostramos nesta postagem o uso do Transfer Learning com o Python para o caso de Séries Temporais.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.