Provider class for OpenAI. Can create language and embedding models.
specification_versionProvider spec version.
new()Initialize the OpenAI provider.
OpenAIProvider$new(
api_key = NULL,
base_url = NULL,
organization = NULL,
project = NULL,
headers = NULL,
name = NULL,
disable_stream_options = FALSE
)api_keyOpenAI API key. Defaults to OPENAI_API_KEY env var.
base_urlBase URL for API calls. Defaults to https://api.openai.com/v1.
organizationOptional OpenAI organization ID.
projectOptional OpenAI project ID.
headersOptional additional headers.
nameOptional provider name override (for compatible APIs).
disable_stream_optionsDisable stream_options parameter (for providers that don't support it).
language_model()Create a language model.
OpenAIProvider$language_model(model_id = Sys.getenv("OPENAI_MODEL", "gpt-4o"))model_idThe model ID (e.g., "gpt-4o", "gpt-4o-mini").
An OpenAILanguageModel object.
responses_model()Create a language model using the Responses API.
OpenAIProvider$responses_model(model_id)model_idThe model ID (e.g., "o1", "o3-mini", "gpt-4o").
The Responses API is designed for:
Models with built-in reasoning (o1, o3 series)
Stateful multi-turn conversations (server maintains history)
Advanced features like structured outputs
The model maintains conversation state internally via response IDs.
Call model$reset() to start a fresh conversation.
An OpenAIResponsesLanguageModel object.
smart_model()Smart model factory that automatically selects the best API.
OpenAIProvider$smart_model(
model_id,
api_format = c("auto", "chat", "responses")
)model_idThe model ID.
api_formatAPI format to use: "auto" (default), "chat", or "responses".
When api_format = "auto" (default), the method automatically selects:
Responses API for reasoning models (o1, o3, o1-mini, o3-mini)
Chat Completions API for all other models (gpt-4o, gpt-4, etc.)
You can override this by explicitly setting api_format.
A language model object (either OpenAILanguageModel or OpenAIResponsesLanguageModel).
embedding_model()Create an embedding model.
OpenAIProvider$embedding_model(model_id = "text-embedding-3-small")model_idThe model ID (e.g., "text-embedding-3-small").
An OpenAIEmbeddingModel object.
clone()The objects of this class are cloneable with this method.
OpenAIProvider$clone(deep = FALSE)deepWhether to make a deep clone.