Class: RubyLLM::Contract::Step::Runner

Inherits:
Object
  • Object
show all
Includes:
LimitChecker
Defined in:
lib/ruby_llm/contract/step/runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(input_type:, output_type:, prompt_block:, contract_definition:, adapter:, model:, output_schema: nil, max_output: nil, max_input: nil, max_cost: nil, temperature: nil, extra_options: {}) ⇒ Runner

Returns a new instance of Runner.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/ruby_llm/contract/step/runner.rb', line 9

def initialize(input_type:, output_type:, prompt_block:, contract_definition:,
               adapter:, model:, output_schema: nil, max_output: nil,
               max_input: nil, max_cost: nil, temperature: nil, extra_options: {})
  @input_type = input_type
  @output_type = output_type
  @prompt_block = prompt_block
  @contract_definition = contract_definition
  @adapter = adapter
  @model = model
  @output_schema = output_schema
  @max_output = max_output
  @max_input = max_input
  @max_cost = max_cost
  @temperature = temperature
  @extra_options = extra_options
end

Instance Method Details

#call(input) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/ruby_llm/contract/step/runner.rb', line 26

def call(input)
  validated_input = validate_input(input)
  return validated_input if validated_input.is_a?(Result)

  messages = build_and_render_prompt(input)
rescue RubyLLM::Contract::Error => e
  Result.new(status: :input_error, raw_output: nil, parsed_output: nil,
             validation_errors: [e.message])
else
  execute_pipeline(messages, input)
end