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.
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:
- Cadastrar uma conta de usuário em platform.openai.com
- 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:
- Navegue até platform.openai.com/playground
- Em
System
, digite uma entrada textual (por exemplo: “Quanto é 10 mais 5?”) - Opcionalmente, escolha valores para parâmetros de interesse (modelo, temperatura, tamanho máximo, etc.)
- Clique em
View code
, selecioneJSON
e clique emCopy
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:
- Importar bibliotecas necessárias
- 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”
- 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.