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.)
Authentication
These functions try a number of authentication strategies, in this order:
An API key set in the
GOOGLE_API_KEYenv var, or, forchat_google_gemini()only,GEMINI_API_KEY.Google's default application credentials, if the gargle package is installed.
Viewer-based credentials on Posit Connect, if the connectcreds package.
. An browser-based OAuth flow, if you're in an interactive session. This currently uses an unverified OAuth app (so you will get a scary warning); we plan to verify in the near future.
Usage
chat_google_gemini(
system_prompt = NULL,
base_url = "https://generativelanguage.googleapis.com/v1beta/",
api_key = NULL,
credentials = 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,
credentials = NULL
)
models_google_vertex(location, project_id, 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
A function that returns a list of authentication headers or
NULL, the default, to use ambient credentials. See above for details.- model
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.- 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().- api_headers
Named character vector of arbitrary extra headers appended to every chat API call.
- 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.- location
Location, e.g.
us-east1,me-central1,africa-south1orglobal.- project_id
Project ID.
Value
A Chat object.
See also
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_openai_compatible(),
chat_openrouter(),
chat_perplexity(),
chat_portkey()
