These functions are used to prepare image URLs and files for input to the
chatbot. The content_image_url() function is used to provide a URL to an
image, while content_image_file() is used to provide the image data itself.
content_image_url(url, detail = c("auto", "low", "high"))
content_image_file(path, content_type = "auto", resize = "low")
content_image_plot(width = 768, height = 768)The URL of the image to include in the chat input. Can be a
data: URL or a regular URL. Valid image types are PNG, JPEG, WebP, and
non-animated GIF.
The detail setting
for this image. Can be "auto", "low", or "high".
The path to the image file to include in the chat input. Valid
file extensions are .png, .jpeg, .jpg, .webp, and (non-animated)
.gif.
The content type of the image (e.g. image/png). If
"auto", the content type is inferred from the file extension.
If "low", resize images to fit within 512x512. If "high",
resize to fit within 2000x768 or 768x2000. (See the OpenAI docs
for more on why these specific sizes are used.) If "none", do not resize.
You can also pass a custom string to resize the image to a specific size,
e.g. "200x200" to resize to 200x200 pixels while preserving aspect ratio.
Append > to resize only if the image is larger than the specified size,
and ! to ignore aspect ratio (e.g. "300x200>!").
All values other than none require the magick package.
Width and height in pixels.
An input object suitable for including in the ... parameter of
the chat(), stream(), chat_async(), or stream_async() methods.
chat <- chat_openai()
#> Using model = "gpt-4.1".
chat$chat(
"What do you see in these images?",
content_image_url("https://www.r-project.org/Rlogo.png"),
content_image_file(system.file("httr2.png", package = "ellmer"))
)
#> Here is what I see in the images:
#>
#> 1. **First Image:**
#> - This is the logo of the R programming language, which is widely used for
#> statistical computing and graphics. The logo features a stylized letter "R" in
#> blue, backed by a gray oval.
#>
#> 2. **Second Image:**
#> - This is the hex sticker/logo for the **httr2** package, an R package for
#> working with HTTP in a modern, user-friendly way. The image features a stylized
#> illustration of a baseball player swinging a bat, with the text "httr2" above.
#> There is also a small "WWW" symbol, referencing web-related functionality.
#>
#> Both images are related to the R programming language and illustrate
#> tools/packages used for data science and programming.
if (FALSE) { # \dontrun{
plot(waiting ~ eruptions, data = faithful)
chat <- chat_openai()
chat$chat(
"Describe this plot in one paragraph, as suitable for inclusion in
alt-text. You should briefly describe the plot type, the axes, and
2-5 major visual patterns.",
content_image_plot()
)
} # }