Skip to content

The Azure OpenAI server hosts a number of open source models as well as proprietary models from OpenAI.

Authentication

chat_azure() supports API keys and the credentials parameter, but it also makes use of:

  • Azure service principals (when the AZURE_TENANT_ID, AZURE_CLIENT_ID, and AZURE_CLIENT_SECRET environment variables are set).

  • Interactive Entra ID authentication, like the Azure CLI.

  • Viewer-based credentials on Posit Connect. Requires the connectcreds package.

Usage

chat_azure(
  endpoint = azure_endpoint(),
  deployment_id,
  api_version = NULL,
  system_prompt = NULL,
  turns = NULL,
  api_key = NULL,
  token = deprecated(),
  credentials = NULL,
  api_args = list(),
  echo = c("none", "text", "all")
)

Arguments

endpoint

Azure OpenAI endpoint url with protocol and hostname, i.e. https://{your-resource-name}.openai.azure.com. Defaults to using the value of the AZURE_OPENAI_ENDPOINT envinronment variable.

deployment_id

Deployment id for the model you want to use.

api_version

The API version to use.

system_prompt

A system prompt to set the behavior of the assistant.

turns

A list of Turns to start the chat with (i.e., continuing a previous conversation). If not provided, the conversation begins from scratch.

api_key

An API key to use for authentication. You generally should not supply this directly, but instead set the AZURE_OPENAI_API_KEY environment variable.

token

[Deprecated] A literal Azure token to use for authentication. Deprecated in favour of ambient Azure credentials or an explicit credentials argument.

credentials

A list of authentication headers to pass into httr2::req_headers(), a function that returns them, or NULL to use token or api_key to generate these headers instead. This is an escape hatch that allows users to incorporate Azure credentials generated by other packages into ellmer, or to manage the lifetime of credentials that need to be refreshed.

api_args

Named list of arbitrary extra arguments appended to the body of every chat API call.

echo

One of the following options:

  • none: don't emit any output (default when running in a function).

  • text: echo text output as it streams in (default when running at the console).

  • all: echo all input and output.

Note this only affects the chat() method.

Value

A Chat object.

Examples

if (FALSE) { # \dontrun{
chat <- chat_azure(deployment_id = "gpt-4o-mini")
chat$chat("Tell me three jokes about statisticians")
} # }