Class: Brute::MessageTransport::RubyOpenAI

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

Class Method Summary collapse

Class Method Details

.dump(message) ⇒ Object

Brute::Message -> ruby-openai Hash payload



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/brute/message_transport/ruby_open_ai.rb', line 6

def self.dump(message)
  payload = {
    role: message.role.to_s
  }

  # Include content if present
  payload[:content] = message.content if message.content

  # Include tool call ID for tool outputs
  payload[:tool_call_id] = message.tool_call_id if message.tool_call_id

  # Convert Brute::ToolCall objects to ruby-openai nested tool call hashes
  if message.tool_call?
    payload[:tool_calls] = message.tool_calls.map do |tc|
      {
        id: tc.id,
        type: "function",
        function: {
          name: tc.name,
          arguments: tc.arguments.is_a?(String) ? tc.arguments : tc.arguments.to_json
        }
      }
    end
  end

  payload
end