R - OPENAI - API
Simon-Pierre Boucher
2024-09-14
In [1]:
library(httr)
library(jsonlite)
# Définition de la fonction
appel_api_openai <- function(
model = "gpt-4",
messages,
temperature = 1,
max_tokens = 2048,
top_p = 1,
frequency_penalty = 0,
presence_penalty = 0
) {
# Récupérer la clé API depuis les variables d'environnement
api_key <- Sys.getenv("OPENAI_API_KEY")
if (api_key == "") {
stop("La clé API n'a pas été trouvée dans les variables d'environnement. Veuillez définir OPENAI_API_KEY.")
}
url <- "https://api.openai.com/v1/chat/completions"
headers <- add_headers(
`Content-Type` = "application/json",
Authorization = paste("Bearer", api_key)
)
body <- list(
model = model,
messages = messages,
temperature = temperature,
max_tokens = max_tokens,
top_p = top_p,
frequency_penalty = frequency_penalty,
presence_penalty = presence_penalty
)
response <- POST(url, headers, body = toJSON(body, auto_unbox = TRUE))
if (status_code(response) != 200) {
stop("La requête API a échoué : ", content(response, "text", encoding = "UTF-8"))
}
result <- content(response, as = "parsed", encoding = "UTF-8")
return(result)
}
In [2]:
messages <- list(
list(role = "system", content = "Tu es un assistant"),
list(role = "user", content = "give me a list of gift idea for my girldfriend")
)
In [3]:
réponse <- appel_api_openai(
model = "gpt-4",
messages = messages,
temperature = 1,
max_tokens = 2048,
top_p = 1,
frequency_penalty = 0,
presence_penalty = 0
)
# Afficher la réponse de l'assistant
cat(réponse$choices[[1]]$message$content)