class Clarification::Requester
Public Class Methods
new(model_array=[])
click to toggle source
# File lib/clarification/requester.rb, line 4 def initialize(model_array=[]) @model_array = model_array end
Public Instance Methods
get(target_url)
click to toggle source
# File lib/clarification/requester.rb, line 8 def get(target_url) response = {} @model_array.each do |model| response[model] = get_with_model(target_url, model) end return response end
Private Instance Methods
body_builder(url)
click to toggle source
# File lib/clarification/requester.rb, line 31 def body_builder(url) { "inputs": [ { "data": { "image": { "url": "#{url}" } } } ] } end
get_response(uri, body)
click to toggle source
# File lib/clarification/requester.rb, line 67 def get_response(uri, body) request = request_builder(uri, body) options = options_builder(uri) response = Net::HTTP.start(uri.hostname, uri.port, options) do |http| http.request(request) end return response end
get_with_model(target_url, model)
click to toggle source
# File lib/clarification/requester.rb, line 18 def get_with_model(target_url, model) uri = uri_builder(model) body = body_builder(target_url) request = request_builder(uri, body) options = options_builder(uri) response = Net::HTTP.start(uri.hostname, uri.port, options) do |http| http.request(request) end return response end
options_builder(uri)
click to toggle source
# File lib/clarification/requester.rb, line 60 def options_builder(uri) request_options = { use_ssl: uri.scheme == "https", } return request_options end
request_builder(uri, body)
click to toggle source
# File lib/clarification/requester.rb, line 51 def request_builder(uri, body) request = Net::HTTP::Post.new(uri) request.content_type = "application/json" request["Authorization"] = "Key #{Clarification.configuration.api_key}" request.body = JSON.dump(body) return request end
uri_builder(model)
click to toggle source
# File lib/clarification/requester.rb, line 45 def uri_builder(model) model_key = Clarification::PUBLIC_MODELS[model] url = "#{Clarification::BASE_URL}models/#{model_key}/outputs" uri = URI.parse(url) end