Class: ActiveAgent::GenerationProvider::ResponsesAdapter

Inherits:
BaseAdapter
  • Object
show all
Defined in:
lib/active_agent/generation_provider/responses_adapter.rb

Instance Attribute Summary

Attributes inherited from BaseAdapter

#prompt

Instance Method Summary collapse

Methods inherited from BaseAdapter

#response

Constructor Details

#initialize(prompt) ⇒ ResponsesAdapter

Returns a new instance of ResponsesAdapter.



6
7
8
9
# File 'lib/active_agent/generation_provider/responses_adapter.rb', line 6

def initialize(prompt)
  super(prompt)
  @prompt = prompt
end

Instance Method Details

#inputObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/active_agent/generation_provider/responses_adapter.rb', line 11

def input
    messages.map do |message|
    if message.content.is_a?(Array)
      {
        role: message.role,
        content: message.content.map do |content_part|
          if content_part.is_a?(String)
            { type: "input_text", text: content_part }
          elsif content_part.is_a?(ActiveAgent::ActionPrompt::Message) && content_part.content_type == "input_text"
            { type: "input_text", text: content_part.content }
          elsif content_part.is_a?(ActiveAgent::ActionPrompt::Message) && content_part.content_type == "image_data"
            { type: "input_image", image_url: content_part.content }
          elsif content_part.is_a?(ActiveAgent::ActionPrompt::Message) && content_part.content_type == "file_data"
            { type: "input_file", filename: content_part.[:filename], file_data: content_part.content }
          else
            raise ArgumentError, "Unsupported content type in message"
          end
        end.compact
      }
    else
      {
        role: message.role,
        content: message.content
      }
    end
  end.compact
end

#messagesObject



39
40
41
# File 'lib/active_agent/generation_provider/responses_adapter.rb', line 39

def messages
  prompt.messages
end