Class: RubyLLM::Contract::Step::ResultBuilder
- Inherits:
-
Object
- Object
- RubyLLM::Contract::Step::ResultBuilder
- Defined in:
- lib/ruby_llm/contract/step/result_builder.rb
Instance Method Summary collapse
- #error_result(error_result:, messages:) ⇒ Object
-
#initialize(contract_definition:, output_type:, output_schema:, model:, observers:) ⇒ ResultBuilder
constructor
A new instance of ResultBuilder.
- #success_result(response:, messages:, latency_ms:, input:) ⇒ Object
Constructor Details
#initialize(contract_definition:, output_type:, output_schema:, model:, observers:) ⇒ ResultBuilder
Returns a new instance of ResultBuilder.
7 8 9 10 11 12 13 |
# File 'lib/ruby_llm/contract/step/result_builder.rb', line 7 def initialize(contract_definition:, output_type:, output_schema:, model:, observers:) @contract_definition = contract_definition @output_type = output_type @output_schema = output_schema @model = model @observers = observers end |
Instance Method Details
#error_result(error_result:, messages:) ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/ruby_llm/contract/step/result_builder.rb', line 15 def error_result(error_result:, messages:) Result.new( status: error_result.status, raw_output: error_result.raw_output, parsed_output: error_result.parsed_output, validation_errors: error_result.validation_errors, trace: Trace.new(messages: , model: @model) ) end |
#success_result(response:, messages:, latency_ms:, input:) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/ruby_llm/contract/step/result_builder.rb', line 25 def success_result(response:, messages:, latency_ms:, input:) raw_output = response.content validation_result = validate_output(raw_output, input) trace = Trace.new(messages: , model: @model, latency_ms: latency_ms, usage: response.usage) Result.new( status: validation_result[:status], raw_output: raw_output, parsed_output: validation_result[:parsed_output], validation_errors: validation_result[:errors], trace: trace, observations: observations_for(validation_result, input) ) end |