Class: Cloudflare::AI::Binding

Inherits:
Object
  • Object
show all
Defined in:
lib/homura/runtime/ai.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(js) ⇒ Binding

Returns a new instance of Binding.



43
44
45
# File 'lib/homura/runtime/ai.rb', line 43

def initialize(js)
  @js = js
end

Instance Attribute Details

#jsObject (readonly)

Returns the value of attribute js.



41
42
43
# File 'lib/homura/runtime/ai.rb', line 41

def js
  @js
end

Instance Method Details

#available?Boolean

Returns:

  • (Boolean)


47
48
49
50
# File 'lib/homura/runtime/ai.rb', line 47

def available?
  js = @js
  !!`(#{js} !== null && #{js} !== undefined && #{js} !== Opal.nil)`
end

#run(model, inputs = nil, options: nil, **input_options) ⇒ Object



52
53
54
55
56
# File 'lib/homura/runtime/ai.rb', line 52

def run(model, inputs = nil, options: nil, **input_options)
  payload = inputs || input_options
  payload = payload.merge(input_options) if inputs.is_a?(Hash) && !input_options.empty?
  Cloudflare::AI.run(model, payload, binding: @js, options: options)
end

#run_stream(model, inputs = nil, **input_options) ⇒ Object



58
59
60
61
62
# File 'lib/homura/runtime/ai.rb', line 58

def run_stream(model, inputs = nil, **input_options)
  payload = inputs || input_options
  payload = payload.merge(input_options) if inputs.is_a?(Hash) && !input_options.empty?
  run(model, payload.merge(stream: true))
end