class RubyLLM::Image
Represents a generated image from an AI model.
Attributes
Public Class Methods
# File lib/ruby_llm/image.rb, line 10 def initialize(url: nil, data: nil, mime_type: nil, revised_prompt: nil, model_id: nil, usage: {}) # rubocop:disable Metrics/ParameterLists @url = url @data = data @mime_type = mime_type @revised_prompt = revised_prompt @model_id = model_id @usage = usage end
# File lib/ruby_llm/image.rb, line 37 def self.paint(prompt, # rubocop:disable Metrics/ParameterLists model: nil, provider: nil, assume_model_exists: false, size: '1024x1024', context: nil, with: nil, mask: nil, params: {}) config = context&.config || RubyLLM.config model ||= config.default_image_model model, provider_instance = Models.resolve(model, provider: provider, assume_exists: assume_model_exists, config: config) model_id = model.id provider_instance.paint(prompt, model: model_id, size:, with:, mask:, params:) end
Public Instance Methods
Source
# File lib/ruby_llm/image.rb, line 62 def cost Cost.new(tokens:, model: model_info, category: :images, input_details: input_tokens_details) end
Source
# File lib/ruby_llm/image.rb, line 66 def model_info return unless model_id @model_info ||= RubyLLM.models.find(model_id) rescue ModelNotFoundError nil end
Source
# File lib/ruby_llm/image.rb, line 32 def save(path) File.binwrite(File.expand_path(path), to_blob) path end
Source
# File lib/ruby_llm/image.rb, line 23 def to_blob if base64? Base64.decode64 @data else response = Connection.basic.get @url response.body end end
Source
# File lib/ruby_llm/image.rb, line 55 def tokens @tokens ||= Tokens.build( input: usage_value('input_tokens'), output: usage_value('output_tokens') ) end