Module: Raif::Concerns::Llms::Bedrock::ResponseToolCalls

Extended by:
ActiveSupport::Concern
Included in:
Llms::Bedrock
Defined in:
app/models/raif/concerns/llms/bedrock/response_tool_calls.rb

Instance Method Summary collapse

Instance Method Details

#extract_response_tool_calls(resp) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/models/raif/concerns/llms/bedrock/response_tool_calls.rb', line 6

def extract_response_tool_calls(resp)
  # Get the message from the response object
  message = resp.output.message
  return if message.content.nil?

  # Find any tool_use blocks in the content array
  tool_uses = message.content.select do |content|
    content.respond_to?(:tool_use) && content.tool_use.present?
  end

  return if tool_uses.blank?

  tool_uses.map do |content|
    {
      "provider_tool_call_id" => content.tool_use.tool_use_id,
      "name" => content.tool_use.name,
      "arguments" => content.tool_use.input
    }
  end
end