Module: Raif::Concerns::Llms::Anthropic::MessageFormatting

Extended by:
ActiveSupport::Concern
Included in:
Llms::Anthropic
Defined in:
app/models/raif/concerns/llms/anthropic/message_formatting.rb

Instance Method Summary collapse

Instance Method Details

#format_model_file_input_message(file_input) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'app/models/raif/concerns/llms/anthropic/message_formatting.rb', line 29

def format_model_file_input_message(file_input)
  if file_input.source_type == :url
    {
      "type" => "document",
      "source" => {
        "type" => "url",
        "url" => file_input.url
      }
    }
  elsif file_input.source_type == :file_content
    {
      "type" => "document",
      "source" => {
        "type" => "base64",
        "media_type" => file_input.content_type,
        "data" => file_input.base64_data
      }
    }
  else
    raise Raif::Errors::InvalidModelFileInputError, "Invalid model file input source type: #{file_input.source_type}"
  end
end

#format_model_image_input_message(image_input) ⇒ Object



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

def format_model_image_input_message(image_input)
  if image_input.source_type == :url
    {
      "type" => "image",
      "source" => {
        "type" => "url",
        "url" => image_input.url
      }
    }
  elsif image_input.source_type == :file_content
    {
      "type" => "image",
      "source" => {
        "type" => "base64",
        "media_type" => image_input.content_type,
        "data" => image_input.base64_data
      }
    }
  else
    raise Raif::Errors::InvalidModelImageInputError, "Invalid model image input source type: #{image_input.source_type}"
  end
end