Module: Raif::Concerns::Llms::OpenAiResponses::MessageFormatting
- Extended by:
- ActiveSupport::Concern
- Included in:
- Llms::OpenAiResponses
- Defined in:
- app/models/raif/concerns/llms/open_ai_responses/message_formatting.rb
Instance Method Summary collapse
- #format_model_file_input_message(file_input) ⇒ Object
- #format_model_image_input_message(image_input) ⇒ Object
- #format_string_message(content, role: nil) ⇒ Object
Instance Method Details
#format_model_file_input_message(file_input) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/models/raif/concerns/llms/open_ai_responses/message_formatting.rb', line 30 def (file_input) if file_input.source_type == :url raise Raif::Errors::UnsupportedFeatureError, "#{self.class.name} does not support providing a file by URL" elsif file_input.source_type == :file_content { "type" => "input_file", "filename" => file_input.filename, "file_data" => "data:#{file_input.content_type};base64,#{file_input.base64_data}" } else raise Raif::Errors::InvalidModelFileInputError, "Invalid model image input source type: #{file_input.source_type}" end end |
#format_model_image_input_message(image_input) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/models/raif/concerns/llms/open_ai_responses/message_formatting.rb', line 14 def (image_input) if image_input.source_type == :url { "type" => "input_image", "image_url" => image_input.url } elsif image_input.source_type == :file_content { "type" => "input_image", "image_url" => "data:#{image_input.content_type};base64,#{image_input.base64_data}" } else raise Raif::Errors::InvalidModelImageInputError, "Invalid model image input source type: #{image_input.source_type}" end end |
#format_string_message(content, role: nil) ⇒ Object
6 7 8 9 10 11 12 |
# File 'app/models/raif/concerns/llms/open_ai_responses/message_formatting.rb', line 6 def (content, role: nil) if role == "assistant" { "type" => "output_text", "text" => content } else { "type" => "input_text", "text" => content } end end |