Class: Brute::MessageTransport::RubyLLM

Inherits:
MessageTransport
  • Object
show all
Defined in:
lib/brute/message_transport/ruby_llm.rb

Class Method Summary collapse

Class Method Details

.dump(message) ⇒ Object

Brute::Message -> RubyLLM::Message (tool calls as ruby_llm's id-keyed hash).



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/brute/message_transport/ruby_llm.rb', line 18

def self.dump(message)
  tool_calls = message.tool_calls&.to_h do |tc|
    [tc.id, ::RubyLLM::ToolCall.new(id: tc.id, name: tc.name, arguments: tc.arguments)]
  end

  ::RubyLLM::Message.new(
    role:         message.role,
    content:      message.content,
    tool_calls:   tool_calls,
    tool_call_id: message.tool_call_id
  )
end

.usage_metrics(message) ⇒ Object

What the provider reported about this call — the transport knows its own library's shape, so it knows which detector to ask.



13
14
15
# File 'lib/brute/message_transport/ruby_llm.rb', line 13

def self.usage_metrics(message)
  Brute::UsageDetection::RubyLLM.detect(message)
end