These generic functions can be use to convert Turn contents or Content objects into textual representations.
contents_text()
is the most minimal and only includes ContentText objects in the output.contents_markdown()
returns the text content (which it assumes to be markdown and does not convert it) plus markdown representations of images and other content types.contents_html()
returns the text content, converted from markdown to HTML withcommonmark::markdown_html()
, plus HTML representations of images and other content types.
These content types will continue to grow and change as ellmer evolves to support more providers and as providers add more content types.
Examples
turns <- list(
Turn("user", contents = list(
ContentText("What's this image?"),
content_image_url("https://placehold.co/200x200")
)),
Turn("assistant", "It's a placeholder image.")
)
lapply(turns, contents_text)
#> [[1]]
#> [1] "What's this image?"
#>
#> [[2]]
#> [1] "It's a placeholder image."
#>
lapply(turns, contents_markdown)
#> [[1]]
#> [1] "What's this image?\n\n"
#>
#> [[2]]
#> [1] "It's a placeholder image."
#>
if (rlang::is_installed("commonmark")) {
contents_html(turns[[1]])
}
#> [1] "<p>What's this image?</p>\n\n<img src=\"https://placehold.co/200x200\">"