Class: Embulk::Filter::AzureComputerVisionApi
- Inherits:
-
FilterPlugin
- Object
- FilterPlugin
- Embulk::Filter::AzureComputerVisionApi
- Defined in:
- lib/embulk/filter/azure_computer_vision_api.rb,
lib/embulk/filter/azure_computer_vision_api/computer_vision_client.rb
Defined Under Namespace
Classes: ComputerVisionClient
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.transaction(config, in_schema) {|task, out_columns| ... } ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/embulk/filter/azure_computer_vision_api.rb', line 8 def self.transaction(config, in_schema, &control) task = { "api_type" => config.param("api_type", :string), "out_key_name" => config.param("out_key_name", :string), "image_path_key_name" => config.param("image_path_key_name", :string), "params" => config.param("params", :hash, default: {}), "delay" => config.param("delay", :integer, default: 0), "retry_wait" => config.param("retry_wait", :integer, default: 10), "read_timeout" => config.param("read_timeout", :integer, default: 60), "subscription_key" => config.param("subscription_key", :string), } add_columns = [ Column.new(nil, task["out_key_name"], :json) ] out_columns = in_schema + add_columns yield(task, out_columns) end |
Instance Method Details
#add(page) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/embulk/filter/azure_computer_vision_api.rb', line 44 def add(page) page.each do |record| hash = Hash[in_schema.names.zip(record)] response = @client.request(hash[@image_path_key_name]) page_builder.add(hash.values + [response]) sleep @delay end end |
#close ⇒ Object
41 42 |
# File 'lib/embulk/filter/azure_computer_vision_api.rb', line 41 def close end |
#finish ⇒ Object
53 54 55 |
# File 'lib/embulk/filter/azure_computer_vision_api.rb', line 53 def finish page_builder.finish end |
#init ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/embulk/filter/azure_computer_vision_api.rb', line 29 def init @image_path_key_name = task['image_path_key_name'] @delay = task['delay'] @client = ComputerVisionClient.new( params: task['params'], subscription_key: task['subscription_key'], retry_wait: task['retry_wait'], read_timeout: task['read_timeout'], api_type: task['api_type'] ) end |