{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
install.packages(“httr”) install.packages(“jsonlite”)
library(httr) library(jsonlite)
api_key <- “SUA_CHAVE_AQUI” url <- “https://api.openai.com/v1/chat/completions”
classificar_acao_weberiana <- function(textos) { resultados <- vector(“list”, length(textos)) # Criar uma lista para armazenar os resultados
for (i in seq_along(textos)) { body <- list( model = “gpt-4-turbo”, messages = list( list(role = “system”, content = “Você é um especialista em sociologia e Max Weber.”), list(role = “user”, content = paste( “Classifique a seguinte fala atribuindo uma única categoria que melhor a descreva, dentre as opções: tradicional, afetiva, racional com relação a valores ou racional com relação a fins.”, “Considere que racional com relação a valores se refere a ações motivadas por convicções, ideais ou crenças.”, “E racional com relação a fins se refere a ações orientadas para atingir um objetivo prático.”, “Responda apenas com a categoria correspondente, sem justificativas ou explicações adicionais.”, “Texto:”, textos[i] )) ), temperature = 0 )
resposta <- POST(url,
add_headers(Authorization = paste("Bearer", api_key)),
content_type_json(),
body = toJSON(body, auto_unbox = TRUE),
encode = "json")
# Verificar se a requisição foi bem-sucedida
if (status_code(resposta) == 200) {
resultado <- content(resposta, as = "parsed", simplifyVector = TRUE)
resultados[[i]] <- resultado$choices[[1]]$message$content
} else {
resultados[[i]] <- paste("Erro:", status_code(resposta))
}
}
return(unlist(resultados)) # Retorna um vetor com os resultados }
textos_exemplos <- c( “Meu pai queria que eu ganhasse muito dinheiro”, “Sempre fiz isso porque minha família faz há gerações”, “Luto pelo que acredito, não importa o preço” )
resultados <- classificar_acao_weberiana(textos_exemplos) print(resultados)