Class: PromptCanary::VersionBuilder
- Inherits:
-
Object
- Object
- PromptCanary::VersionBuilder
- Defined in:
- lib/prompt_canary/version_builder.rb
Instance Attribute Summary collapse
-
#_model ⇒ Object
readonly
Returns the value of attribute _model.
-
#_name ⇒ Object
readonly
Returns the value of attribute _name.
-
#_rollout ⇒ Object
readonly
Returns the value of attribute _rollout.
-
#_system ⇒ Object
readonly
Returns the value of attribute _system.
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(name) ⇒ VersionBuilder
constructor
A new instance of VersionBuilder.
- #model(value) ⇒ Object
- #rollback_if(metric, over:, greater_than: nil, less_than: nil) ⇒ Object
- #rollout(value) ⇒ Object
- #rollout_to(&block) ⇒ Object
- #system(value = nil, &block) ⇒ Object
Constructor Details
#initialize(name) ⇒ VersionBuilder
Returns a new instance of VersionBuilder.
7 8 9 10 11 |
# File 'lib/prompt_canary/version_builder.rb', line 7 def initialize(name) @_name = name @_rollout = {} @_rollback_rules = [] end |
Instance Attribute Details
#_model ⇒ Object (readonly)
Returns the value of attribute _model.
5 6 7 |
# File 'lib/prompt_canary/version_builder.rb', line 5 def _model @_model end |
#_name ⇒ Object (readonly)
Returns the value of attribute _name.
5 6 7 |
# File 'lib/prompt_canary/version_builder.rb', line 5 def _name @_name end |
#_rollout ⇒ Object (readonly)
Returns the value of attribute _rollout.
5 6 7 |
# File 'lib/prompt_canary/version_builder.rb', line 5 def _rollout @_rollout end |
#_system ⇒ Object (readonly)
Returns the value of attribute _system.
5 6 7 |
# File 'lib/prompt_canary/version_builder.rb', line 5 def _system @_system end |
Instance Method Details
#build ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/prompt_canary/version_builder.rb', line 41 def build Version.new( name: _name, model: _model, system: _system, rollout: _rollout, predicate: @_predicate, rollback_rules: @_rollback_rules ) end |
#model(value) ⇒ Object
33 34 35 |
# File 'lib/prompt_canary/version_builder.rb', line 33 def model(value) @_model = value end |
#rollback_if(metric, over:, greater_than: nil, less_than: nil) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/prompt_canary/version_builder.rb', line 21 def rollback_if(metric, over:, greater_than: nil, less_than: nil) comparator = if greater_than :greater_than elsif less_than :less_than else raise ArgumentError, "rollback_if requires greater_than: or less_than:" end threshold = greater_than || less_than @_rollback_rules << RollbackRule.new(metric: metric, threshold: threshold, comparator: comparator, window: over) end |
#rollout(value) ⇒ Object
13 14 15 |
# File 'lib/prompt_canary/version_builder.rb', line 13 def rollout(value) @_rollout = value end |
#rollout_to(&block) ⇒ Object
17 18 19 |
# File 'lib/prompt_canary/version_builder.rb', line 17 def rollout_to(&block) @_predicate = block end |
#system(value = nil, &block) ⇒ Object
37 38 39 |
# File 'lib/prompt_canary/version_builder.rb', line 37 def system(value = nil, &block) @_system = block || value end |