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 = NULL,
credentials = NULL,
model = NULL,
params = NULL,
api_args = list(),
echo = NULL,
api_headers = character()
)
models_github(
base_url = "https://models.github.ai/",
api_key = NULL,
credentials = NULL
)Arguments
- 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
- credentials
Override the default credentials. You generally should not need this argument; instead set the
GITHUB_PATenvironment variable. The best place to set this is in.Renviron, which you can easily edit by callingusethis::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).
- 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().- 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.
See also
Other chatbots:
chat_anthropic(),
chat_aws_bedrock(),
chat_azure_openai(),
chat_cloudflare(),
chat_databricks(),
chat_deepseek(),
chat_google_gemini(),
chat_groq(),
chat_huggingface(),
chat_mistral(),
chat_ollama(),
chat_openai(),
chat_openai_compatible(),
chat_openrouter(),
chat_perplexity(),
chat_portkey()
