Module: Anthropic::Helpers::InputSchema

Defined in:
lib/anthropic/helpers/input_schema.rb,
lib/anthropic/helpers/input_schema/boolean.rb,
lib/anthropic/helpers/input_schema/enum_of.rb,
lib/anthropic/helpers/input_schema/array_of.rb,
lib/anthropic/helpers/input_schema/union_of.rb,
lib/anthropic/helpers/input_schema/base_model.rb,
lib/anthropic/helpers/input_schema/parsed_json.rb,
lib/anthropic/helpers/input_schema/property_mapping.rb,
lib/anthropic/helpers/input_schema/json_schema_converter.rb

Overview

Helpers for the structured output API.

see platform.Anthropic.com/docs/guides/structured-outputs see json-schema.org

Based on the DSL in Internal::Type, but currently only support the limited subset of JSON schema types used in structured output APIs.

Supported types: NilClass String Symbol Integer Float Boolean, EnumOf, UnionOf, ArrayOf, BaseModel

Defined Under Namespace

Modules: JsonSchemaConverter Classes: ArrayOf, BaseModel, Boolean, EnumOf, ParsedJson, UnionOf

Constant Summary collapse

PROPERTY_MAPPING =

rubocop:disable Style/MutableConstant

{
  # Numeric properties:
  minimum: :minimum,
  maximum: :maximum,
  exclusive_minimum: :exclusiveMinimum,
  exclusive_maximum: :exclusiveMaximum,
  multiple_of: :multipleOf,

  # String properties:
  min_length: :minLength,
  max_length: :maxLength,
  pattern: :pattern,
  format: :format,
  content_media_type: :contentMediaType,
  content_encoding: :contentEncoding,

  # Array properties:
  min_items: :minItems,
  max_items: :maxItems,
  unique_items: :uniqueItems,
  prefix_items: :prefixItems,
  contains: :contains,
  min_contains: :minContains,
  max_contains: :maxContains,

  # Object properties:
  pattern_properties: :patternProperties,
  dependent_schemas: :dependentSchemas,
  dependent_required: :dependentRequired,
  property_names: :propertyNames,

  # Metadata:
  default: :default,
  examples: :examples,

  doc: :description
}