Skip to content

PortkeyAI provides an interface (AI Gateway) to connect through its Universal API to a variety of LLMs providers via a single endpoint.

Usage

chat_portkey(
  model,
  system_prompt = NULL,
  base_url = "https://api.portkey.ai/v1",
  api_key = NULL,
  credentials = NULL,
  virtual_key = deprecated(),
  params = NULL,
  api_args = list(),
  echo = NULL,
  api_headers = character()
)

models_portkey(base_url = "https://api.portkey.ai/v1", api_key = portkey_key())

Arguments

model

The model name, e.g. @my-provider/my-model.

system_prompt

A system prompt to set the behavior of the assistant.

base_url

The base URL to the endpoint; the default is OpenAI's public API.

api_key

[Deprecated] Use credentials instead.

credentials

Override the default credentials. You generally should not need this argument; instead set the PORTKEY_API_KEY environment variable. The best place to set this is in .Renviron, which you can easily edit by calling usethis::edit_r_environ().

If you do need additional control, this argument takes a zero-argument function that returns either a string (the API key), or a named list (added as additional headers to every request).

virtual_key

[Deprecated]. Portkey now recommend supplying the model provider (formerly known as the virtual_key), in the model name, e.g. @my-provider/my-model. See https://portkey.ai/docs/support/upgrade-to-model-catalog for details.

For backward compatibility, the PORTKEY_VIRTUAL_KEY env var is still used if the model doesn't include a provider.

params

Common model parameters, usually created by params().

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.

api_headers

Named character vector of arbitrary extra headers appended to every chat API call.

Value

A Chat object.

Examples

if (FALSE) { # \dontrun{
chat <- chat_portkey()
chat$chat("Tell me three jokes about statisticians")
} # }