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. Tool calling support is also very limited at present and is currently not supported by ellmer.

Usage

chat_databricks(
  workspace = databricks_workspace(),
  system_prompt = NULL,
  turns = NULL,
  model = NULL,
  token = NULL,
  api_args = list(),
  echo = c("none", "text", "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.

turns

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

model

The model to use for the chat. The default, NULL, will pick a reasonable default, and tell you about. We strongly recommend explicitly choosing a model for all but the most casual use. Available foundational models include:

  • databricks-dbrx-instruct (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.

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_databricks()
chat$chat("Tell me three jokes about statisticians")
} # }