Skip to main content

OpenAI

The openai provider supports the OpenAI /chat endpoint.

tip

For Azure OpenAI, use azure-openai instead.

For OpenAI-compatible APIs (Groq, Ollama, Together AI, etc.), use openai-generic.

Basic Example​

client<llm> MyClient {
provider "openai"
options {
api_key env.MY_OPENAI_KEY
model "gpt-4o"
temperature 0.1
}
}

BAML-Specific Options​

OptionTypeDefaultDescription
api_keystringenv.OPENAI_API_KEYAPI key for Authorization header
base_urlstringhttps://api.openai.com/v1Base URL for API
headersobject-Additional request headers

Custom Headers​

client<llm> MyClient {
provider openai
options {
api_key env.MY_OPENAI_KEY
model "gpt-4o"
headers {
"X-My-Header" "my-value"
}
}
}

Available Models​

ModelUse CaseContextFeatures
gpt-4oGeneral purpose, multimodal200KUpdated knowledge, June 2024
gpt-4o-miniCost-effective tasks128KFaster, lower cost
o1Complex reasoning200KExtended thinking
o1-miniLightweight reasoning128KFaster reasoning

See OpenAI Models for the complete list.

Reasoning Models​

warning

For reasoning models (o1, o1-mini), use max_completion_tokens instead of max_tokens:

client<llm> OpenAIo1 {
provider openai
options {
model "o1-mini"
max_tokens null
}
}

Changing Regions​

Access OpenAI's API in different regions by setting base_url:

client<llm> EUClient {
provider openai
options {
model "gpt-4o"
base_url "https://eu.api.openai.com/v1"
}
}

Provider Parameters​

These options are passed directly to OpenAI:

OptionTypeDescription
modelstringModel identifier
temperaturefloatSampling temperature (0-2)
max_tokensintMaximum response tokens
top_pfloatNucleus sampling parameter
frequency_penaltyfloatFrequency penalty (-2 to 2)
presence_penaltyfloatPresence penalty (-2 to 2)

See the OpenAI API documentation for all options.

See Also​