ChatGPT API

R
R Tips
Autor/a

David Mateos

Fecha de publicación

17 de marzo de 2023

Para los que ya estáis dandole a tope al chatGPT, os paso una función para usarlo desde dentro de R usando la API de OpenAI. Lo subo al repo de scripts varios,… acordaos que tenemos ese repo por si queréis compartir algún script o código corto que os resulte útil.

# source: https://sumsar.net/blog/call-chatgpt-from-r/
library(httr)
library(stringr)
api_key_gpt <- "mete tu api key"
ask_chatgpt <- function(prompt, mostrar = F) {
  response <- POST(
    url = "https://api.openai.com/v1/chat/completions",
    add_headers(Authorization = paste("Bearer", api_key_gpt)),
    content_type_json(),
    encode = "json",
    body = list(
      model = "gpt-3.5-turbo",
      messages = list(list(
        role = "user",
        content = prompt
      ))
    )
  )
  respuesta <- str_trim(content(response)$choices[[1]]$message$content)
  if(mostrar) return(cat(respuesta))
  respuesta
}


# ejemplos
ask_chatgpt("dime cómo se hace un histograma de una distribución normal en R", mostrar = T)
muestras <- rnorm(1000, mean = 50, sd = 10)
rojo_diablo <- ask_chatgpt("Answer only with the color hex code for 'devil red'")
hist(muestras, breaks = 20, col = rojo_diablo, xlim = c(20, 80), main = "Histograma de una distribución normal")