Google's AI offering is broken up into two parts: Gemini and Vertex AI. Most enterprises are likely to use Vertex AI, and individuals are likely to use Gemini.
Use google_upload() to upload files (PDFs, images, video, audio, etc.)
chat_google_gemini(
system_prompt = NULL,
base_url = "https://generativelanguage.googleapis.com/v1beta/",
api_key = NULL,
model = NULL,
params = NULL,
api_args = list(),
api_headers = character(),
echo = NULL
)
chat_google_vertex(
location,
project_id,
system_prompt = NULL,
model = NULL,
params = NULL,
api_args = list(),
api_headers = character(),
echo = NULL
)
models_google_gemini(
base_url = "https://generativelanguage.googleapis.com/v1beta/",
api_key = NULL
)
models_google_vertex(location, project_id)A system prompt to set the behavior of the assistant.
The base URL to the endpoint; the default uses OpenAI.
API key to use for authentication.
You generally should not supply this directly, but instead set the GOOGLE_API_KEY environment variable.
The best place to set this is in .Renviron,
which you can easily edit by calling usethis::edit_r_environ().
For Gemini, you can alternatively set GEMINI_API_KEY.
The model to use for the chat (defaults to "gemini-2.5-flash").
We regularly update the default, so we strongly recommend explicitly specifying a model for anything other than casual use.
Use models_google_gemini() to see all options.
Common model parameters, usually created by params().
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().
Named character vector of arbitrary extra headers appended to every chat API call.
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.
Location, e.g. us-east1, me-central1, africa-south1 or
global.
Project ID.
A Chat object.
Other chatbots:
chat_anthropic(),
chat_aws_bedrock(),
chat_azure_openai(),
chat_cloudflare(),
chat_databricks(),
chat_deepseek(),
chat_github(),
chat_groq(),
chat_huggingface(),
chat_mistral(),
chat_ollama(),
chat_openai(),
chat_openrouter(),
chat_perplexity(),
chat_portkey()
if (FALSE) { # \dontrun{
chat <- chat_google_gemini()
chat$chat("Tell me three jokes about statisticians")
} # }