class WatsonxClient
Constants
- IBM_CLOUD_IAM_URL
- WATSONX_BASE_URL
Public Class Methods
Source
# 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
Public Instance Methods
Source
# 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
Private Instance Methods
Source
# File lib/i18n/tasks/translators/watsonx_translator.rb, line 145 def token(key) Faraday.new(url: IBM_CLOUD_IAM_URL) do |conn| conn.use Faraday::Response::RaiseError conn.response :json conn.params = { grant_type: 'urn:ibm:params:oauth:grant-type:apikey', apikey: key } end.post.body['access_token'] end