Class: PromptCanary::PromptExecutor
- Inherits:
-
Object
- Object
- PromptCanary::PromptExecutor
- Defined in:
- lib/prompt_canary/prompt_executor.rb
Instance Method Summary collapse
- #call(context: {}, **args) ⇒ Object
-
#initialize(prompt_class:, adapter: nil, recorder: nil) ⇒ PromptExecutor
constructor
A new instance of PromptExecutor.
Constructor Details
#initialize(prompt_class:, adapter: nil, recorder: nil) ⇒ PromptExecutor
Returns a new instance of PromptExecutor.
5 6 7 8 9 |
# File 'lib/prompt_canary/prompt_executor.rb', line 5 def initialize(prompt_class:, adapter: nil, recorder: nil) @prompt_class = prompt_class @adapter = adapter || AdapterFactory.build(PromptCanary.configuration.adapter) @recorder = recorder || Recorder.new(storage: StorageFactory.build(PromptCanary.configuration.storage)) end |
Instance Method Details
#call(context: {}, **args) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/prompt_canary/prompt_executor.rb', line 11 def call(context: {}, **args) version = Router.choose(@prompt_class, context) telemetry = @adapter.call(version: version, args: args) @recorder.record(prompt: @prompt_class.name, version: version, telemetry: telemetry) Result.new( text: telemetry[:text], version_used: version.name, model: version.model, latency_ms: telemetry[:latency_ms], tokens: telemetry[:tokens], error: telemetry[:error], recorded_at: Time.now ) end |