Class: TurnKit::MessageProjection

Inherits:
Object
  • Object
show all
Defined in:
lib/turnkit/message_projection.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message) ⇒ MessageProjection

Returns a new instance of MessageProjection.



9
10
11
# File 'lib/turnkit/message_projection.rb', line 9

def initialize(message)
  @message = message
end

Class Method Details

.for(messages) ⇒ Object



5
6
7
# File 'lib/turnkit/message_projection.rb', line 5

def self.for(messages)
  messages.map { |message| new(message).to_h }
end

Instance Method Details

#to_hObject



13
14
15
16
17
18
19
20
21
22
# File 'lib/turnkit/message_projection.rb', line 13

def to_h
  case message.kind
  when "tool_call"
    { role: :assistant, content: message.text, tool_calls: message..fetch("tool_calls", []) }
  when "tool_result"
    { role: :tool, content: message.text, tool_call_id: message.["tool_call_id"] }
  else
    { role: message.role.to_sym, content: message.text }
  end
end