Class: Smith::Agent::Completion
- Inherits:
-
Dry::Struct
- Object
- Dry::Struct
- Smith::Agent::Completion
- Defined in:
- lib/smith/agent/completion.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.from_messages(response:, messages:) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/smith/agent/completion.rb', line 14 def self.(response:, messages:) = Array().select do || .respond_to?(:role) && .role.to_s == "assistant" end usage_source = .empty? ? [response] : provider_usages = build_provider_usages(usage_source) new( response: response, provider_usages:, usage_complete: provider_usages.length == usage_source.length ) end |
Instance Method Details
#content ⇒ Object
28 29 30 |
# File 'lib/smith/agent/completion.rb', line 28 def content response.content if response.respond_to?(:content) end |
#input_tokens ⇒ Object
32 33 34 |
# File 'lib/smith/agent/completion.rb', line 32 def input_tokens provider_usages.sum(&:input_tokens) if usage_complete end |
#output_tokens ⇒ Object
36 37 38 |
# File 'lib/smith/agent/completion.rb', line 36 def output_tokens provider_usages.sum(&:output_tokens) if usage_complete end |