The openai package provides R scripts to use the Open AI API. In order to get started you will need to sign up for an account at https://openai.com/. You will also need to set up billing to use the API.
You can install the development version of openai from GitHub with:
# install.packages("devtools")
devtools::install_github("samterfa/openai")
API calls are authenticated using your API keys. The environment variables set below are consulted while making each call.
Sys.setenv(openai_organization_id = {your_organization_id})
Sys.setenv(openai_secret_key = {your_secret_key})
More details on authentication can be found here.
library(openai)
list_models()$data %>%
dplyr::bind_rows()
#> # A tibble: 72 × 4
#> id object created owned_by
#> <chr> <chr> <int> <chr>
#> 1 text-search-babbage-doc-001 model 1651172509 openai-dev
#> 2 gpt-4 model 1687882411 openai
#> 3 gpt-3.5-turbo-16k model 1683758102 openai-internal
#> 4 curie-search-query model 1651172509 openai-dev
#> 5 text-davinci-003 model 1669599635 openai-internal
#> 6 text-search-babbage-query-001 model 1651172509 openai-dev
#> 7 babbage model 1649358449 openai
#> 8 gpt-3.5-turbo-1106 model 1698959748 system
#> 9 babbage-search-query model 1651172509 openai-dev
#> 10 text-babbage-001 model 1649364043 openai
#> # ℹ 62 more rows
create_chat_completion(
model = 'gpt-3.5-turbo',
messages =
list(
list(role = 'system', content = 'You are a helpful assistant.'),
list(role = 'user', content = 'Who won the world series in 2020?'),
list(role = 'assistant', content = 'The Los Angeles Dodgers won the world series in 2020.'),
list(role = 'user', content = 'Where was it played?')
)
)$choices[[1]]$message$content
#> [1] "The 2020 World Series was played in Arlington, Texas at the Globe Life Field, which is the new home stadium of the Texas Rangers."
img_url <-
create_image(
model = 'dall-e-3',
prompt = 'a white siamese cat',
n = 1,
size = '1024x1024')$data[[1]]$url
knitr::include_graphics(img_url)
openai::create_chat_completion(
model = 'gpt-4-vision-preview',
messages = list(
list(role = 'user',
content = list(
list(
type = 'text',
text = 'What is this a picture of?'
),
list(
type = 'image_url',
image_url = list(
url = img_url
)
)
)
)
),
max_tokens = 1000
)$choices[[1]]$message$content
#> [1] "This is a highly detailed, idealized digital artwork or photograph of a cat with striking blue eyes surrounded by lush greenery, flowers, and butterflies. The lighting is warm and soft, highlighting the cat's face and giving the scene an almost magical or ethereal quality. The cat appears to be a Ragdoll, characterized by its large blue eyes, pointed color scheme, and luxurious semi-longhair coat. The image composition is created to evoke a sense of tranquility and harmony with nature."
Access it via the Addins menu, or by Tools -> Addins -> Browse Addins. Search for “openai”.