Class: RubyLLM::Agents::CachedImageAnalysisResult

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_llm/agents/results/image_analysis_result.rb

Overview

Lightweight result for cached analyses

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ CachedImageAnalysisResult

Returns a new instance of CachedImageAnalysisResult.



259
260
261
262
263
264
265
266
267
268
269
270
271
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 259

def initialize(data)
  @image = data[:image]
  @model_id = data[:model_id]
  @analysis_type = data[:analysis_type]
  @caption = data[:caption]
  @description = data[:description]
  @tags = data[:tags] || []
  @objects = data[:objects] || []
  @colors = data[:colors] || []
  @text = data[:text]
  @total_cost = data[:total_cost]
  @cached_at = data[:cached_at]
end

Instance Attribute Details

#analysis_typeObject (readonly)

Returns the value of attribute analysis_type.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def analysis_type
  @analysis_type
end

#cached_atObject (readonly)

Returns the value of attribute cached_at.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def cached_at
  @cached_at
end

#captionObject (readonly)

Returns the value of attribute caption.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def caption
  @caption
end

#colorsObject (readonly)

Returns the value of attribute colors.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def colors
  @colors
end

#descriptionObject (readonly)

Returns the value of attribute description.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def description
  @description
end

#imageObject (readonly)

Returns the value of attribute image.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def image
  @image
end

#model_idObject (readonly)

Returns the value of attribute model_id.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def model_id
  @model_id
end

#objectsObject (readonly)

Returns the value of attribute objects.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def objects
  @objects
end

#tagsObject (readonly)

Returns the value of attribute tags.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def tags
  @tags
end

#textObject (readonly)

Returns the value of attribute text.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def text
  @text
end

#total_costObject (readonly)

Returns the value of attribute total_cost.



255
256
257
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 255

def total_cost
  @total_cost
end

Instance Method Details

#batch?Boolean

Returns:

  • (Boolean)


293
294
295
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 293

def batch?
  false
end

#cached?Boolean

Returns:

  • (Boolean)


281
282
283
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 281

def cached?
  true
end

#caption?Boolean

Returns:

  • (Boolean)


297
298
299
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 297

def caption?
  caption.present?
end

#colors?Boolean

Returns:

  • (Boolean)


313
314
315
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 313

def colors?
  colors.any?
end

#countObject



285
286
287
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 285

def count
  success? ? 1 : 0
end

#description?Boolean

Returns:

  • (Boolean)


301
302
303
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 301

def description?
  description.present?
end

#dominant_colorObject



325
326
327
328
329
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 325

def dominant_color
  return nil unless colors?

  colors.max_by { |c| c[:percentage] || 0 }
end

#error?Boolean

Returns:

  • (Boolean)


277
278
279
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 277

def error?
  !success?
end

#objects?Boolean

Returns:

  • (Boolean)


309
310
311
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 309

def objects?
  objects.any?
end

#single?Boolean

Returns:

  • (Boolean)


289
290
291
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 289

def single?
  true
end

#success?Boolean

Returns:

  • (Boolean)


273
274
275
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 273

def success?
  caption.present? || description.present? || tags.any?
end

#tag_symbolsObject



321
322
323
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 321

def tag_symbols
  tags.map { |t| t.to_s.downcase.gsub(/\s+/, "_").to_sym }
end

#tags?Boolean

Returns:

  • (Boolean)


305
306
307
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 305

def tags?
  tags.any?
end

#text?Boolean

Returns:

  • (Boolean)


317
318
319
# File 'lib/ruby_llm/agents/results/image_analysis_result.rb', line 317

def text?
  text.present?
end