Module: Brute::UsageDetection::LangChain
- Defined in:
- lib/brute/usage_detection/lang_chain.rb
Overview
langchainrb has no single usage object: each provider's response subclass answers prompt_tokens / completion_tokens / total_tokens by digging its own raw shape, and some answer none of them.
Class Method Summary collapse
Class Method Details
.detect(response) ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/brute/usage_detection/lang_chain.rb', line 13 def self.detect(response) detected = Usage.new( input: read(response, :prompt_tokens), output: read(response, :completion_tokens), total: read(response, :total_tokens), raw: response, ) detected.empty? ? nil : detected end |
.read(response, name) ⇒ Object
24 |
# File 'lib/brute/usage_detection/lang_chain.rb', line 24 def self.read(response, name) = response.respond_to?(name) ? response.public_send(name) : nil |