Class: WatsonxClient

Inherits:
Object
  • Object
show all
Defined in:
lib/i18n/tasks/translators/watsonx_translator.rb

Constant Summary collapse

WATSONX_BASE_URL =
'https://us-south.ml.cloud.ibm.com/ml/'
IBM_CLOUD_IAM_URL =
'https://iam.cloud.ibm.com/identity/token'

Instance Method Summary collapse

Constructor Details

#initialize(key:) ⇒ WatsonxClient

Returns a new instance of WatsonxClient.



123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/i18n/tasks/translators/watsonx_translator.rb', line 123

def initialize(key:)
  begin
    require 'faraday'
  rescue LoadError
    raise ::I18n::Tasks::CommandError, "Add gem 'faraday' to your Gemfile to use this command"
  end

  @http = Faraday.new(url: WATSONX_BASE_URL) do |conn|
    conn.use Faraday::Response::RaiseError
    conn.request :json
    conn.response :json
    conn.options.timeout = 600
    conn.request :authorization, :Bearer, token(key)
  end
end

Instance Method Details

#generate_text(**opts) ⇒ Object



139
140
141
# File 'lib/i18n/tasks/translators/watsonx_translator.rb', line 139

def generate_text(**opts)
  @http.post('v1/text/generation?version=2024-05-20', **opts).body
end