Class: RubyLLM::Contract::Step::Runner
- Inherits:
-
Object
- Object
- RubyLLM::Contract::Step::Runner
- Includes:
- LimitChecker
- Defined in:
- lib/ruby_llm/contract/step/runner.rb
Instance Method Summary collapse
- #call(input) ⇒ Object
-
#initialize(config: nil, **kwargs) ⇒ Runner
constructor
Two construction forms: Runner.new(config: a_runner_config) # preferred — value-object Runner.new(input_type:, output_type:, …) # legacy kwarg form (still supported).
Constructor Details
#initialize(config: nil, **kwargs) ⇒ Runner
Two construction forms:
Runner.new(config: a_runner_config) # preferred — value-object
Runner.new(input_type:, output_type:, ...) # legacy kwarg form (still supported)
The legacy form delegates to ‘RunnerConfig.build(**kwargs)`, so the defaults live in one place (`RunnerConfig.build`) and the kwarg surface is no longer duplicated here.
16 17 18 |
# File 'lib/ruby_llm/contract/step/runner.rb', line 16 def initialize(config: nil, **kwargs) @config = config || RunnerConfig.build(**kwargs) end |
Instance Method Details
#call(input) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ruby_llm/contract/step/runner.rb', line 20 def call(input) validated_input = input_validator.call(input) return validated_input if validated_input.is_a?(Result) = prompt_compiler.call(input) rescue RubyLLM::Contract::Error => e Result.new(status: :input_error, raw_output: nil, parsed_output: nil, validation_errors: [e.]) else execute_pipeline(, input) end |