module RubyLLM::Providers::Gemini::Media
Public Instance Methods
# File lib/ruby_llm/providers/gemini/media.rb, line 39 def format_attachment(attachment) { inline_data: { mime_type: attachment.mime_type, data: attachment.encoded } } end
Source
# File lib/ruby_llm/providers/gemini/media.rb, line 13 def format_content(content) return content.value if content.is_a?(RubyLLM::Content::Raw) return [format_text(content.to_json)] if content.is_a?(Hash) || content.is_a?(Array) return [format_text(content)] unless content.is_a?(Content) parts = [] parts << format_text(content.text) if content.text content.attachments.each do |attachment| parts << format_content_attachment(attachment) end parts end
# File lib/ruby_llm/providers/gemini/media.rb, line 28 def format_content_attachment(attachment) case attachment.type when :text format_text_file(attachment) when :document, :unknown raise UnsupportedAttachmentError, attachment.mime_type else format_attachment(attachment) end end
Source
# File lib/ruby_llm/providers/gemini/media.rb, line 54 def format_text(text) { text: text } end
Source
# File lib/ruby_llm/providers/gemini/media.rb, line 48 def format_text_file(text_file) { text: text_file.for_llm } end