Module: LLM::Tool::Param
- Included in:
- LLM::Tool
- Defined in:
- lib/llm/tool/param.rb
Overview
The LLM::Tool::Param module extends the LLM::Tool class with a "param" method that can define a parameter for simple types. For complex types, use LLM::Tool.params instead.
Defined Under Namespace
Modules: Utils
Instance Method Summary collapse
- #param(name, type, description, options = {}) ⇒ Object (also: #parameter)
-
#required(names) ⇒ LLM::Schema::Object
Mark existing parameters as required.
-
#defaults(defaults) ⇒ LLM::Schema::Object
Set default values for parameters.
Instance Method Details
#param(name, type, description, options = {}) ⇒ Object Also known as: parameter
42 43 44 45 46 47 48 49 |
# File 'lib/llm/tool/param.rb', line 42 def param(name, type, description, = {}) lock do function.params do |schema| resolved = Utils.resolve(schema, type) schema.object(name => Utils.setup(resolved, description, )) end end end |
#required(names) ⇒ LLM::Schema::Object
Mark existing parameters as required.
56 57 58 59 60 61 62 |
# File 'lib/llm/tool/param.rb', line 56 def required(names) lock do function.params.tap do |schema| [*names].each { Utils.fetch(schema.properties, _1).required } end end end |
#defaults(defaults) ⇒ LLM::Schema::Object
Set default values for parameters.
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/llm/tool/param.rb', line 68 def defaults(defaults) lock do function.params.tap do |schema| defaults.each do |name, value| leaf = Utils.fetch(schema.properties, name) leaf.owner = self leaf.default(value) end end end end |