Class: Metamind::Client

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

Instance Method Summary collapse

Constructor Details

#initialize(cert: nil, private_key: nil, password: nil, email:) ⇒ Client

Returns a new instance of Client.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/metamind.rb', line 13

def initialize cert: nil, private_key: nil, password: nil, email:
  if cert.nil? && private_key.nil?
    raise ArgumentError.new 'At least one parameter must be specified: cert or private_key'
  end

  if !cert.nil?
    pkcs12 = OpenSSL::PKCS12::new(File.read(cert), password)
    @private_key = pkcs12.key
  elsif !private_key.nil?
    @private_key = OpenSSL::PKey::RSA.new(File.read(private_key), password)
  end
  @email = email
  @boundary = SecureRandom.hex(10)
end

Instance Method Details

#access_tokenObject



28
29
30
31
# File 'lib/metamind.rb', line 28

def access_token
  get_access_token if @access_token.nil?
  @access_token
end

#create_dataset(name, labels) ⇒ Object



45
46
47
# File 'lib/metamind.rb', line 45

def create_dataset name, labels
  post "#{METAMIND_VISION_API}/datasets", {name: name, labels: labels}
end

#create_example(dataset_id, params) ⇒ Object



69
70
71
# File 'lib/metamind.rb', line 69

def create_example dataset_id, params
  post "#{METAMIND_VISION_API}/datasets/#{dataset_id}/examples", params
end

#create_label(dataset_id, name) ⇒ Object



61
62
63
# File 'lib/metamind.rb', line 61

def create_label dataset_id, name
  post "#{METAMIND_VISION_API}/datasets/#{dataset_id}/labels", name: name
end

#delete_dataset(dataset_id) ⇒ Object



57
58
59
# File 'lib/metamind.rb', line 57

def delete_dataset dataset_id
  delete "#{METAMIND_VISION_API}/datasets/#{dataset_id}"
end

#delete_example(dataset_id, example_id) ⇒ Object



81
82
83
# File 'lib/metamind.rb', line 81

def delete_example dataset_id, example_id
  delete "#{METAMIND_VISION_API}/datasets/#{dataset_id}/examples/#{example_id}"
end

#get_all_datasetsObject



49
50
51
# File 'lib/metamind.rb', line 49

def get_all_datasets
  get "#{METAMIND_VISION_API}/datasets"
end

#get_all_example(dataset_id) ⇒ Object



77
78
79
# File 'lib/metamind.rb', line 77

def get_all_example dataset_id
  get "#{METAMIND_VISION_API}/datasets/#{dataset_id}/examples"
end

#get_all_models(dataset_id) ⇒ Object



97
98
99
# File 'lib/metamind.rb', line 97

def get_all_models dataset_id
  get "#{METAMIND_VISION_API}/datasets/#{dataset_id}/models"
end

#get_dataset(dataset_id) ⇒ Object



53
54
55
# File 'lib/metamind.rb', line 53

def get_dataset dataset_id
  get "#{METAMIND_VISION_API}/datasets/#{dataset_id}"
end

#get_example(dataset_id, example_id) ⇒ Object



73
74
75
# File 'lib/metamind.rb', line 73

def get_example dataset_id, example_id
  get "#{METAMIND_VISION_API}/datasets/#{dataset_id}/examples/#{example_id}"
end

#get_label(dataset_id, label_id) ⇒ Object



65
66
67
# File 'lib/metamind.rb', line 65

def get_label dataset_id, label_id
  get "#{METAMIND_VISION_API}/datasets/#{dataset_id}/labels/#{label_id}"
end

#get_model_metrics(model_id) ⇒ Object



93
94
95
# File 'lib/metamind.rb', line 93

def get_model_metrics model_id
  get "#{METAMIND_VISION_API}/models/#{model_id}"
end

#get_training_status(model_id) ⇒ Object



89
90
91
# File 'lib/metamind.rb', line 89

def get_training_status model_id
  get "#{METAMIND_VISION_API}/train/#{model_id}"
end

#predict_with_base64(base64_string, modelId = 'GeneralImageClassifier') ⇒ Object

def predict_with_file path, modelId = ‘GeneralImageClassifier’

post "#{METAMIND_VISION_API}/predict", {sampleContent: path, modelId: modelId}

end



41
42
43
# File 'lib/metamind.rb', line 41

def predict_with_base64 base64_string, modelId = 'GeneralImageClassifier'
  post "#{METAMIND_VISION_API}/predict", {sampleBase64Content: base64_string, modelId: modelId}
end

#predict_with_url(url, modelId = 'GeneralImageClassifier') ⇒ Object



33
34
35
# File 'lib/metamind.rb', line 33

def predict_with_url url, modelId = 'GeneralImageClassifier'
  post "#{METAMIND_VISION_API}/predict", {sampleLocation: url, modelId: modelId}
end

#train_dataset(params) ⇒ Object



85
86
87
# File 'lib/metamind.rb', line 85

def train_dataset params
  post "#{METAMIND_VISION_API}/train", params
end