ContentBuilderWithAttachment

A builder class that extends TextContentBuilder to support both text and media attachments.

This class combines text content building capabilities with media attachment support, allowing users to create rich content that includes both textual information and media elements like images, audio files, and documents.

Example usage:

val contentBuilder = ContentBuilderWithAttachment()
contentBuilder.text("Here's my analysis:")
contentBuilder.attachments {
image("chart.png")
document("report.pdf")
}
val (text, attachments) = contentBuilder.buildWithAttachments()

This class is part of the new DSL structure for prompt construction, replacing the previous UserContentBuilder approach. It provides a more structured way to combine text and media attachments in a single builder.

See also

for text-only content building

for media attachment building

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard

Represents the current caret position in the text being built.

Functions

Link copied to clipboard

Configures media attachments for this content builder.

Link copied to clipboard
fun br()

Adds two consecutive newline characters to the text content.

Link copied to clipboard
fun build(): String

Constructs and returns the accumulated textual content stored in the builder.

Link copied to clipboard

Builds and returns both the text content and media attachments.

Link copied to clipboard
fun newline()

Appends a newline character to the underlying text builder.

Link copied to clipboard
operator fun String.not()

Defines a custom operator function for the String class. This unary not operator (!) is invoked on a String instance and performs a custom action defined by the text function.

Link copied to clipboard

Extension function for TextContentBuilder that adds line numbering to the content.

Link copied to clipboard
fun padding(padding: String, body: TextContentBuilder.() -> Unit)

Adds padding to each line of the content produced by the provided builder block.

Link copied to clipboard
fun text(text: String)

Appends the given text to the current content.

Link copied to clipboard

Adds the given text to the content. If the caret is not at the beginning of the line, a newline is added before appending the text.

Link copied to clipboard
open operator fun String.unaryPlus()

Adds the given string as a new line of text to the content being built by the TextContentBuilder.