Class: Olyx::Guardrails::Rails::DecisionService

Inherits:
Object
  • Object
show all
Defined in:
lib/olyx/guardrails/rails/decision_service.rb

Overview

Configures a reusable Rails lifecycle around one public decision operation.

Instance Method Summary collapse

Constructor Details

#initialize(operation, notification_input: nil) ⇒ DecisionService

Returns a new instance of DecisionService.



10
11
12
13
# File 'lib/olyx/guardrails/rails/decision_service.rb', line 10

def initialize(operation, notification_input: nil)
  @operation = operation
  @notification_input = notification_input
end

Instance Method Details

#call(input, metadata:, configuration:) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/olyx/guardrails/rails/decision_service.rb', line 15

def call(input, metadata:, configuration:)
  notification_input = @notification_input ? @notification_input.call(input) : input
  EvaluationLifecycle.call(notification_input, metadata: , configuration: configuration) do
    Guardrails.public_send(
      @operation, input, policy: configuration.policy, llm_provider: configuration.llm_provider
    )
  end
end