Learn R Programming

tidyllm (version 0.3.4)

tidyllm_schema: Create a JSON Schema for Structured Outputs

Description

This function creates a JSON schema for structured outputs, supporting both character-based shorthand and S7 tidyllm_field objects. It also integrates with ellmer types like ellmer::type_string() if ellmer is in your namespace

Usage

tidyllm_schema(name = "tidyllm_schema", ...)

Value

A list representing the JSON schema, suitable for use with .json_schema in LLM API calls.

Arguments

name

A character string specifying the schema name (default: "tidyllm_schema").

...

Named arguments where each name represents a field, and each value is either a character string, a tidyllm_field, or an ellmer type.

Supported character shorthand types:

  • "character" or "string" for character fields

  • "logical" for boolean fields

  • "numeric" for number fields

  • "factor(...)" for enumerations

  • Use [] to indicate vectors, e.g., "character[]"

Examples

Run this code
if (FALSE) {
# Example using different field types
address_schema <- tidyllm_schema(
  name = "AddressSchema",
  Street = field_chr("A common street name"),
  house_number = field_dbl(),
  City = field_chr("Name of a city"),
  State = field_fct("State abbreviation", .levels = c("CA", "TX", "Other")),
  Country = "string",
  PostalCode = "string"
)

llm_message("Imagine an address") |> chat(openai, .json_schema = address_schema)

# Example with vector field
tidyllm_schema(
  plz = field_dbl(.vector = TRUE)
)
}

Run the code above in your browser using DataLab