class IBM::ML::Local
Class for calling Local
Machine Learning scoring service
Public Class Methods
new(host, username, password)
click to toggle source
Calls superclass method
IBM::ML::new
# File lib/ibm/ml/local.rb, line 7 def initialize(host, username, password) super @http.use_ssl = true @http.verify_mode = OpenSSL::SSL::VERIFY_NONE end
Public Instance Methods
query_score(score, field)
click to toggle source
# File lib/ibm/ml/local.rb, line 35 def query_score(score, field) query_ml_score(score, field, 'records') end
score(deployment_id, record)
click to toggle source
# File lib/ibm/ml/local.rb, line 13 def score(deployment_id, record) url = URI("https://#{@host}/v2/scoring/online/#{deployment_id}") # noinspection RubyStringKeysInHashInspection header = { 'authorization' => "Bearer #{fetch_token}", 'content-type' => 'application/json' } request = Net::HTTP::Post.new(url, header) request.body = { fields: record.keys, records: [record.values] }.to_json response = @http.request(request) begin body = JSON.parse(response.read_body) body.key?('records') ? body : raise(ScoringError, response.read_body) rescue JSON::ParserError raise(ScoringError, response.read_body) end end
Private Instance Methods
ldap_request(uri)
click to toggle source
# File lib/ibm/ml/local.rb, line 45 def ldap_request(uri) request = Net::HTTP::Get.new uri request['Username'] = @username request['Password'] = @password request end
ldap_url()
click to toggle source
# File lib/ibm/ml/local.rb, line 41 def ldap_url "https://#{@host}/v2/identity/token" end
process_ldap_response(response)
click to toggle source
# File lib/ibm/ml/local.rb, line 52 def process_ldap_response(response) JSON.parse(response.read_body)['accessToken'] end