Skip to content

Anthropic provides a number of chat based models under the Claude moniker. Note that a Claude Pro membership does not give you the ability to call models via the API; instead, you will need to sign up (and pay for) a developer account

Authentication

To authenticate, we recommend saving your API key to the ANTHROPIC_API_KEY env var in your .Renviron (which you can easily edit by calling usethis::edit_r_environ()).

Usage

chat_claude(
  system_prompt = NULL,
  turns = NULL,
  max_tokens = 4096,
  model = NULL,
  api_args = list(),
  base_url = "https://api.anthropic.com/v1",
  beta_headers = character(),
  api_key = anthropic_key(),
  echo = NULL
)

Arguments

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.

max_tokens

Maximum number of tokens to generate before stopping.

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.

api_args

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

base_url

The base URL to the endpoint; the default uses OpenAI.

beta_headers

Optionally, a character vector of beta headers to opt-in claude features that are still in beta.

api_key

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

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

chat <- chat_claude()
#> Using model = "claude-3-7-sonnet-latest".
chat$chat("Tell me three jokes about statisticians")
#> # Three Jokes About Statisticians
#> 
#> 1. A statistician is someone who can put their head in an oven, their 
#> feet in a freezer, and say "On average, I feel fine."
#> 
#> 2. How many statisticians does it take to change a light bulb?
#>    "Well... just one, but they need to change it 30 times to ensure 
#> statistical significance."
#> 
#> 3. A statistician confidently walked into a casino and lost all their 
#> money at roulette. When asked why they kept betting on zero, they 
#> replied, "The law of averages indicates that zero is due any time now.
#> My only error was insufficient sample size!"