Skip to content

GitHub Models hosts a number of open source and OpenAI models. To access the GitHub model marketplace, you will need to apply for and be accepted into the beta access program. See https://github.com/marketplace/models for details.

This function is a lightweight wrapper around chat_openai() with the defaults tweaked for the GitHub Models marketplace.

GitHub also suports the Azure AI Inference SDK, which you can use by setting base_url to "https://models.inference.ai.azure.com/". This endpoint was used in ellmer v0.3.0 and earlier.

Usage

chat_github(
  system_prompt = NULL,
  base_url = "https://models.github.ai/inference/",
  api_key = github_key(),
  model = NULL,
  params = NULL,
  seed = NULL,
  api_args = list(),
  echo = NULL,
  api_headers = character()
)

models_github(base_url = "https://models.github.ai/", api_key = github_key())

Arguments

system_prompt

A system prompt to set the behavior of the assistant.

base_url

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

api_key

API key to use for authentication.

You generally should not supply this directly, but instead set the GITHUB_PAT environment variable. The best place to set this is in .Renviron, which you can easily edit by calling usethis::edit_r_environ().

model

The model to use for the chat (defaults to "gpt-4o"). We regularly update the default, so we strongly recommend explicitly specifying a model for anything other than casual use.

params

Common model parameters, usually created by params().

seed

Optional integer seed that ChatGPT uses to try and make output more reproducible.

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