Class: TurnKit::ImageResult

Inherits:
Object
  • Object
show all
Defined in:
lib/turnkit/image_result.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url: nil, data: nil, mime_type: nil, revised_prompt: nil, model: nil, provider: nil, usage: Usage.new, params: {}, metadata: {}) ⇒ ImageResult

Returns a new instance of ImageResult.



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/turnkit/image_result.rb', line 14

def initialize(url: nil, data: nil, mime_type: nil, revised_prompt: nil, model: nil, provider: nil, usage: Usage.new, params: {}, metadata: {}, **)
  @url = url
  @data = data
  @mime_type = mime_type
  @revised_prompt = revised_prompt
  @model = model
  @provider = provider
  @usage = usage.is_a?(Usage) ? usage : Usage.from_h(usage || {})
  @params = params || {}
  @metadata =  || {}
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



8
9
10
# File 'lib/turnkit/image_result.rb', line 8

def data
  @data
end

#metadataObject (readonly)

Returns the value of attribute metadata.



8
9
10
# File 'lib/turnkit/image_result.rb', line 8

def 
  @metadata
end

#mime_typeObject (readonly)

Returns the value of attribute mime_type.



8
9
10
# File 'lib/turnkit/image_result.rb', line 8

def mime_type
  @mime_type
end

#modelObject (readonly)

Returns the value of attribute model.



8
9
10
# File 'lib/turnkit/image_result.rb', line 8

def model
  @model
end

#paramsObject (readonly)

Returns the value of attribute params.



8
9
10
# File 'lib/turnkit/image_result.rb', line 8

def params
  @params
end

#providerObject (readonly)

Returns the value of attribute provider.



8
9
10
# File 'lib/turnkit/image_result.rb', line 8

def provider
  @provider
end

#revised_promptObject (readonly)

Returns the value of attribute revised_prompt.



8
9
10
# File 'lib/turnkit/image_result.rb', line 8

def revised_prompt
  @revised_prompt
end

#urlObject (readonly)

Returns the value of attribute url.



8
9
10
# File 'lib/turnkit/image_result.rb', line 8

def url
  @url
end

#usageObject (readonly)

Returns the value of attribute usage.



8
9
10
# File 'lib/turnkit/image_result.rb', line 8

def usage
  @usage
end

Class Method Details

.from_h(value) ⇒ Object



10
11
12
# File 'lib/turnkit/image_result.rb', line 10

def self.from_h(value)
  new(**value.transform_keys(&:to_sym))
end

Instance Method Details

#costObject



32
33
34
# File 'lib/turnkit/image_result.rb', line 32

def cost
  Cost.from_usage(usage, model: model)
end

#to_blobObject

Raises:



26
27
28
29
30
# File 'lib/turnkit/image_result.rb', line 26

def to_blob
  raise Error, "image has no url or data" if url.to_s.empty? && data.to_s.empty?

  data ? Base64.decode64(data) : URI.open(url, &:read)
end

#to_hObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/turnkit/image_result.rb', line 36

def to_h
  {
    "url" => url,
    "data" => data,
    "mime_type" => mime_type,
    "revised_prompt" => revised_prompt,
    "model" => model,
    "provider" => provider,
    "usage" => usage.to_h,
    "cost" => cost.to_h,
    "params" => params,
    "metadata" => 
  }.compact
end