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.metadata[: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
|