Module: Crimson::Tools::Schema
- Defined in:
- lib/crimson/tools/schema.rb
Overview
Helper for building OpenAI and Anthropic tool definition schemas.
Class Method Summary collapse
-
.build(name:, description:, parameters:, required:) ⇒ Hash
Build an OpenAI-compatible tool definition.
-
.build_anthropic(name:, description:, parameters:, required:) ⇒ Hash
Build an Anthropic-compatible tool definition.
-
.definitions_for(name:, description:, parameters:, required:) ⇒ Hash
Build both OpenAI and Anthropic definitions at once.
Class Method Details
.build(name:, description:, parameters:, required:) ⇒ Hash
Build an OpenAI-compatible tool definition.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/crimson/tools/schema.rb', line 13 def self.build(name:, description:, parameters:, required:) { type: "function", function: { name: name, description: description, parameters: { type: "object", properties: parameters, required: required } } } end |
.build_anthropic(name:, description:, parameters:, required:) ⇒ Hash
Build an Anthropic-compatible tool definition.
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/crimson/tools/schema.rb', line 34 def self.build_anthropic(name:, description:, parameters:, required:) { name: name, description: description, input_schema: { type: "object", properties: parameters, required: required } } end |
.definitions_for(name:, description:, parameters:, required:) ⇒ Hash
Build both OpenAI and Anthropic definitions at once.
52 53 54 55 56 57 |
# File 'lib/crimson/tools/schema.rb', line 52 def self.definitions_for(name:, description:, parameters:, required:) { openai: build(name: name, description: description, parameters: parameters, required: required), anthropic: build_anthropic(name: name, description: description, parameters: parameters, required: required) } end |