Class: NitroIntelligence::ImageGeneration
- Inherits:
-
Object
- Object
- NitroIntelligence::ImageGeneration
- Defined in:
- lib/nitro_intelligence/media/image_generation.rb
Defined Under Namespace
Classes: Config
Instance Attribute Summary collapse
-
#byte_string ⇒ Object
readonly
Returns the value of attribute byte_string.
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#file_extension ⇒ Object
readonly
Returns the value of attribute file_extension.
-
#file_type ⇒ Object
readonly
Returns the value of attribute file_type.
-
#generated_image ⇒ Object
readonly
Returns the value of attribute generated_image.
-
#messages ⇒ Object
readonly
Returns the value of attribute messages.
-
#reference_images ⇒ Object
readonly
Returns the value of attribute reference_images.
-
#target_image ⇒ Object
readonly
Returns the value of attribute target_image.
-
#trace_id ⇒ Object
Returns the value of attribute trace_id.
Instance Method Summary collapse
- #files ⇒ Object
-
#initialize(message: "", target_image: nil, reference_images: []) {|@config| ... } ⇒ ImageGeneration
constructor
A new instance of ImageGeneration.
- #parse_file(chat_completion) ⇒ Object
Constructor Details
#initialize(message: "", target_image: nil, reference_images: []) {|@config| ... } ⇒ ImageGeneration
Returns a new instance of ImageGeneration.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 28 def initialize( message: "", target_image: nil, reference_images: [] ) @config = Config.new @generated_image = nil @model = NitroIntelligence.model_catalog.lookup_by_name(@config.model) @reference_images = reference_images.map { |img| Image.new(img) } @trace_id = nil # Overrides yield(@config) if block_given? validate_config! if target_image @target_image = Image.new(target_image) configure_aspect_ratio end (, @target_image, @reference_images) end |
Instance Attribute Details
#byte_string ⇒ Object (readonly)
Returns the value of attribute byte_string.
24 25 26 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 24 def byte_string @byte_string end |
#config ⇒ Object (readonly)
Returns the value of attribute config.
24 25 26 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 24 def config @config end |
#file_extension ⇒ Object (readonly)
Returns the value of attribute file_extension.
24 25 26 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 24 def file_extension @file_extension end |
#file_type ⇒ Object (readonly)
Returns the value of attribute file_type.
24 25 26 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 24 def file_type @file_type end |
#generated_image ⇒ Object (readonly)
Returns the value of attribute generated_image.
24 25 26 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 24 def generated_image @generated_image end |
#messages ⇒ Object (readonly)
Returns the value of attribute messages.
24 25 26 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 24 def @messages end |
#reference_images ⇒ Object (readonly)
Returns the value of attribute reference_images.
24 25 26 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 24 def reference_images @reference_images end |
#target_image ⇒ Object (readonly)
Returns the value of attribute target_image.
24 25 26 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 24 def target_image @target_image end |
#trace_id ⇒ Object
Returns the value of attribute trace_id.
26 27 28 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 26 def trace_id @trace_id end |
Instance Method Details
#files ⇒ Object
51 52 53 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 51 def files [target_image, reference_images, generated_image].flatten.compact end |
#parse_file(chat_completion) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/nitro_intelligence/media/image_generation.rb', line 55 def parse_file(chat_completion) base64_string = chat_completion.choices.first&..to_h.fetch(:images, {})&.first&.dig(:image_url, :url) return unless base64_string @generated_image = Image.from_base64(base64_string) @generated_image.direction = "output" @generated_image rescue ArgumentError NitroIntelligence.logger.info("Skipping image parse due to invalid base64; likely already parsed.") nil end |