Class: RailsConsoleAi::Providers::Bedrock

Inherits:
Base
  • Object
show all
Defined in:
lib/rails_console_ai/providers/bedrock.rb

Instance Attribute Summary

Attributes inherited from Base

#config

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from RailsConsoleAi::Providers::Base

Instance Method Details

#chat(messages, system_prompt: nil) ⇒ Object



4
5
6
# File 'lib/rails_console_ai/providers/bedrock.rb', line 4

def chat(messages, system_prompt: nil)
  call_api(messages, system_prompt: system_prompt)
end

#chat_with_tools(messages, tools:, system_prompt: nil) ⇒ Object



8
9
10
# File 'lib/rails_console_ai/providers/bedrock.rb', line 8

def chat_with_tools(messages, tools:, system_prompt: nil)
  call_api(messages, system_prompt: system_prompt, tools: tools)
end

#format_assistant_message(result) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rails_console_ai/providers/bedrock.rb', line 12

def format_assistant_message(result)
  content = []
  content << { text: result.text } if result.text && !result.text.empty?
  (result.tool_calls || []).each do |tc|
    content << {
      tool_use: {
        tool_use_id: tc[:id],
        name: tc[:name],
        input: tc[:arguments]
      }
    }
  end
  { role: 'assistant', content: content }
end

#format_tool_result(tool_call_id, result_string) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rails_console_ai/providers/bedrock.rb', line 27

def format_tool_result(tool_call_id, result_string)
  {
    role: 'user',
    content: [
      {
        tool_result: {
          tool_use_id: tool_call_id,
          content: [{ text: result_string.to_s }]
        }
      }
    ]
  }
end