GenAI.Tool.Schema.Object (GenAI Core v0.3.1)

Copy Markdown

Represents a schema for object types, converting JSON schema attributes to Elixir struct fields.

Summary

Functions

Convert Json map to a GenAI.Tool.Schema.Object struct, handling naming conventions.

Check if json is of type

Types

t()

@type t() :: %GenAI.Tool.Schema.Object{
  additional_properties: boolean() | map() | nil,
  description: String.t() | nil,
  max_properties: integer() | nil,
  min_properties: integer() | nil,
  pattern_properties: map() | nil,
  properties: map() | nil,
  property_names: map() | nil,
  required: [String.t()] | nil,
  type: String.t()
}

Functions

from_json(attributes)

@spec from_json(map()) :: t()

Convert Json map to a GenAI.Tool.Schema.Object struct, handling naming conventions.

Examples

Is of Type

iex> GenAI.Tool.Schema.Object.from_json(%{"type" => "object", "description" => "An object value"})
{:ok, %GenAI.Tool.Schema.Object{type: "object", description: "An object value"}}

Not of Type

iex> GenAI.Tool.Schema.Object.from_json(%{"type" => "number"})
{:error, :unrecognized_type}

is_type(arg1)

Check if json is of type

Examples

Is of Type

iex> GenAI.Tool.Schema.Object.is_type(%{"type" => "object"})
true

Not of Type

iex> GenAI.Tool.Schema.Object.is_type(%{"type" => "string"})
false