Skip to content

Databricks provides out-of-the-box access to a number of foundation models and can also serve as a gateway for external models hosted by a third party.

Authentication

chat_databricks() picks up on ambient Databricks credentials for a subset of the Databricks client unified authentication model. Specifically, it supports:

  • Personal access tokens

  • Service principals via OAuth (OAuth M2M)

  • User account via OAuth (OAuth U2M)

  • Authentication via the Databricks CLI

  • Posit Workbench-managed credentials

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

Known limitations

Databricks models do not support images, but they do support structured outputs and tool calls for most models.

Usage

chat_databricks(
  workspace = databricks_workspace(),
  system_prompt = NULL,
  model = NULL,
  token = NULL,
  api_args = list(),
  echo = c("none", "output", "all")
)

Arguments

workspace

The URL of a Databricks workspace, e.g. "https://example.cloud.databricks.com". Will use the value of the environment variable DATABRICKS_HOST, if set.

system_prompt

A system prompt to set the behavior of the assistant.

model

The model to use for the chat (defaults to "databricks-claude-3-7-sonnet"). We regularly update the default, so we strongly recommend explicitly specifying a model for anything other than casual use.

Available foundational models include:

  • databricks-claude-3-7-sonnet (the default)

  • databricks-mixtral-8x7b-instruct

  • databricks-meta-llama-3-1-70b-instruct

  • databricks-meta-llama-3-1-405b-instruct

token

An authentication token for the Databricks workspace, or NULL to use ambient credentials.

api_args

Named list of arbitrary extra arguments appended to the body of every chat API call. Combined with the body object generated by ellmer with modifyList().

echo

One of the following options:

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

  • output: echo text and tool-calling 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_databricks()
chat$chat("Tell me three jokes about statisticians")
} # }