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

Ancoragem de Expectativas da Inflação no Brasil: uma avaliação utilizando a linguagem de programação R

Expectativas ancoradas significam que a inflação permanece próxima da meta mesmo após choques relevantes, tornando menos custosa a atuação do Banco Central no combate a pressões inflacionárias. Neste exercício, analisamos diferentes medidas para avaliar a ancoragem das expectativas no Brasil, utilizando a linguagem de programação R como ferramenta para a construção desse exercício, realizando a coleta, tratamento, cálculos e visualização dos resultados.

Como fazer previsões para a inflação desagregada medida pelo IPCA?

Neste artigo investigamos se a previsão desagregada da inflação é capaz de gerar previsões mais acuradas do que a previsão agregada. Utilizamos o Índice Nacional de Preços ao Consumidor Amplo (IPCA) como medida de interesse, aplicando um modelo simples e um modelo de passeio aleatório para comparação. Todo o processo pode ser feito de maneira automatizada utilizando a linguagem de programação R.

Qual o melhor modelo para prever a inflação medida pelo IPCA?

Neste exercício, testamos 18 modelos diferentes com um conjunto fixo de regressores para previsão da taxa de inflação, medida pelo IPCA. Implementamos o método da validação cruzada, visando obter resultados robustos para comparação de métricas de performance. Apresentamos os resultados gerais e desagregados por horizontes de previsão, além de automatizar todo o processo utilizando a linguagem Python.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

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.