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.

Databricks models do not support images, but they do support structured outputs. Tool calling support is also very limited at present; too limited for ellmer's tool calling features to work properly at all.

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

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")
} # }