Class: PromptCanary::Monitor
- Inherits:
-
Object
- Object
- PromptCanary::Monitor
- Defined in:
- lib/prompt_canary/monitor.rb
Instance Method Summary collapse
- #evaluate(prompt_class) ⇒ Object
-
#initialize(recorder:) ⇒ Monitor
constructor
A new instance of Monitor.
Constructor Details
#initialize(recorder:) ⇒ Monitor
Returns a new instance of Monitor.
5 6 7 |
# File 'lib/prompt_canary/monitor.rb', line 5 def initialize(recorder:) @recorder = recorder end |
Instance Method Details
#evaluate(prompt_class) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/prompt_canary/monitor.rb', line 9 def evaluate(prompt_class) prompt_class.versions.each do |version| version.rollback_rules.each do |rule| value = @recorder.public_send(rule.metric, prompt: prompt_class.name, version: version.name, over: rule.window) next unless rule.violated_by?(value) PromptCanary.demote( prompt_class, version.name, triggered_by: "monitor", triggering_metric: rule.metric.to_s, triggering_value: value, triggering_threshold: rule.threshold ) end end end |