ibm_watson 0.16.1 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +34 -12
- data/lib/ibm_watson/assistant_v1.rb +745 -720
- data/lib/ibm_watson/assistant_v2.rb +23 -19
- data/lib/ibm_watson/compare_comply_v1.rb +94 -89
- data/lib/ibm_watson/discovery_v1.rb +684 -687
- data/lib/ibm_watson/language_translator_v3.rb +234 -33
- data/lib/ibm_watson/natural_language_classifier_v1.rb +33 -29
- data/lib/ibm_watson/natural_language_understanding_v1.rb +33 -29
- data/lib/ibm_watson/personality_insights_v3.rb +18 -14
- data/lib/ibm_watson/speech_to_text_v1.rb +799 -725
- data/lib/ibm_watson/text_to_speech_v1.rb +201 -196
- data/lib/ibm_watson/tone_analyzer_v3.rb +15 -11
- data/lib/ibm_watson/version.rb +1 -1
- data/lib/ibm_watson/visual_recognition_v3.rb +52 -48
- data/test/integration/test_language_translator_v3.rb +37 -1
- data/test/unit/test_language_translator_v3.rb +201 -16
- data/test/unit/test_speech_to_text_v1.rb +2 -2
- metadata +5 -5
@@ -55,16 +55,16 @@ module IBMWatson
|
|
55
55
|
# ready for a later version.
|
56
56
|
# @option args url [String] The base url to use when contacting the service (e.g.
|
57
57
|
# "https://gateway.watsonplatform.net/tone-analyzer/api").
|
58
|
-
# The base url may differ between
|
58
|
+
# The base url may differ between IBM Cloud regions.
|
59
59
|
# @option args username [String] The username used to authenticate with the service.
|
60
60
|
# Username and password credentials are only required to run your
|
61
|
-
# application locally or outside of
|
62
|
-
#
|
61
|
+
# application locally or outside of IBM Cloud. When running on
|
62
|
+
# IBM Cloud, the credentials will be automatically loaded from the
|
63
63
|
# `VCAP_SERVICES` environment variable.
|
64
64
|
# @option args password [String] The password used to authenticate with the service.
|
65
65
|
# Username and password credentials are only required to run your
|
66
|
-
# application locally or outside of
|
67
|
-
#
|
66
|
+
# application locally or outside of IBM Cloud. When running on
|
67
|
+
# IBM Cloud, the credentials will be automatically loaded from the
|
68
68
|
# `VCAP_SERVICES` environment variable.
|
69
69
|
# @option args iam_apikey [String] An API key that can be used to request IAM tokens. If
|
70
70
|
# this API key is provided, the SDK will manage the token and handle the
|
@@ -74,7 +74,9 @@ module IBMWatson
|
|
74
74
|
# it expires or reactively upon receiving a 401 from the service as any requests
|
75
75
|
# made with an expired token will fail.
|
76
76
|
# @option args iam_url [String] An optional URL for the IAM service API. Defaults to
|
77
|
-
# 'https://iam.
|
77
|
+
# 'https://iam.cloud.ibm.com/identity/token'.
|
78
|
+
# @option args iam_client_id [String] An optional client id for the IAM service API.
|
79
|
+
# @option args iam_client_secret [String] An optional client secret for the IAM service API.
|
78
80
|
def initialize(args = {})
|
79
81
|
@__async_initialized__ = false
|
80
82
|
defaults = {}
|
@@ -85,6 +87,8 @@ module IBMWatson
|
|
85
87
|
defaults[:iam_apikey] = nil
|
86
88
|
defaults[:iam_access_token] = nil
|
87
89
|
defaults[:iam_url] = nil
|
90
|
+
defaults[:iam_client_id] = nil
|
91
|
+
defaults[:iam_client_secret] = nil
|
88
92
|
args = defaults.merge(args)
|
89
93
|
args[:vcap_services_name] = "tone_analyzer"
|
90
94
|
super
|
@@ -99,7 +103,7 @@ module IBMWatson
|
|
99
103
|
##
|
100
104
|
# @!method tone(tone_input:, sentences: nil, tones: nil, content_language: nil, accept_language: nil, content_type: nil)
|
101
105
|
# Analyze general tone.
|
102
|
-
# Use the general
|
106
|
+
# Use the general-purpose endpoint to analyze the tone of your input content. The
|
103
107
|
# service analyzes the content for emotional and language tones. The method always
|
104
108
|
# analyzes the tone of the full document; by default, it also analyzes the tone of
|
105
109
|
# each individual sentence of the content.
|
@@ -118,7 +122,7 @@ module IBMWatson
|
|
118
122
|
# analyzes only the textual content.
|
119
123
|
#
|
120
124
|
# **See also:** [Using the general-purpose
|
121
|
-
# endpoint](https://cloud.ibm.com/docs/services/tone-analyzer
|
125
|
+
# endpoint](https://cloud.ibm.com/docs/services/tone-analyzer?topic=tone-analyzer-utgpe#utgpe).
|
122
126
|
# @param tone_input [ToneInput] JSON, plain text, or HTML input that contains the content to be analyzed. For JSON
|
123
127
|
# input, provide an object of type `ToneInput`.
|
124
128
|
# @param sentences [Boolean] Indicates whether the service is to return an analysis of each individual sentence
|
@@ -183,8 +187,8 @@ module IBMWatson
|
|
183
187
|
|
184
188
|
##
|
185
189
|
# @!method tone_chat(utterances:, content_language: nil, accept_language: nil)
|
186
|
-
# Analyze customer
|
187
|
-
# Use the customer
|
190
|
+
# Analyze customer-engagement tone.
|
191
|
+
# Use the customer-engagement endpoint to analyze the tone of customer service and
|
188
192
|
# customer support conversations. For each utterance of a conversation, the method
|
189
193
|
# reports the most prevalent subset of the following seven tones: sad, frustrated,
|
190
194
|
# satisfied, excited, polite, impolite, and sympathetic.
|
@@ -197,7 +201,7 @@ module IBMWatson
|
|
197
201
|
# character encoding for JSON content is effectively always UTF-8.
|
198
202
|
#
|
199
203
|
# **See also:** [Using the customer-engagement
|
200
|
-
# endpoint](https://cloud.ibm.com/docs/services/tone-analyzer
|
204
|
+
# endpoint](https://cloud.ibm.com/docs/services/tone-analyzer?topic=tone-analyzer-utco#utco).
|
201
205
|
# @param utterances [Array[Utterance]] An array of `Utterance` objects that provides the input content that the service
|
202
206
|
# is to analyze.
|
203
207
|
# @param content_language [String] The language of the input text for the request: English or French. Regional
|
data/lib/ibm_watson/version.rb
CHANGED
@@ -47,7 +47,7 @@ module IBMWatson
|
|
47
47
|
# ready for a later version.
|
48
48
|
# @option args url [String] The base url to use when contacting the service (e.g.
|
49
49
|
# "https://gateway.watsonplatform.net/visual-recognition/api").
|
50
|
-
# The base url may differ between
|
50
|
+
# The base url may differ between IBM Cloud regions.
|
51
51
|
# @option args iam_apikey [String] An API key that can be used to request IAM tokens. If
|
52
52
|
# this API key is provided, the SDK will manage the token and handle the
|
53
53
|
# refreshing.
|
@@ -56,7 +56,9 @@ module IBMWatson
|
|
56
56
|
# it expires or reactively upon receiving a 401 from the service as any requests
|
57
57
|
# made with an expired token will fail.
|
58
58
|
# @option args iam_url [String] An optional URL for the IAM service API. Defaults to
|
59
|
-
# 'https://iam.
|
59
|
+
# 'https://iam.cloud.ibm.com/identity/token'.
|
60
|
+
# @option args iam_client_id [String] An optional client id for the IAM service API.
|
61
|
+
# @option args iam_client_secret [String] An optional client secret for the IAM service API.
|
60
62
|
def initialize(args = {})
|
61
63
|
@__async_initialized__ = false
|
62
64
|
defaults = {}
|
@@ -65,6 +67,8 @@ module IBMWatson
|
|
65
67
|
defaults[:iam_apikey] = nil
|
66
68
|
defaults[:iam_access_token] = nil
|
67
69
|
defaults[:iam_url] = nil
|
70
|
+
defaults[:iam_client_id] = nil
|
71
|
+
defaults[:iam_client_secret] = nil
|
68
72
|
args = defaults.merge(args)
|
69
73
|
args[:vcap_services_name] = "watson_vision_combined"
|
70
74
|
super
|
@@ -169,11 +173,11 @@ module IBMWatson
|
|
169
173
|
# to the Face model was removed. The identity information refers to the `name` of
|
170
174
|
# the person, `score`, and `type_hierarchy` knowledge graph. For details about the
|
171
175
|
# enhanced Face model, see the [Release
|
172
|
-
# notes](https://cloud.ibm.com/docs/services/visual-recognition
|
176
|
+
# notes](https://cloud.ibm.com/docs/services/visual-recognition?topic=visual-recognition-release-notes#2april2018).
|
173
177
|
#
|
174
178
|
# Analyze and get data about faces in images. Responses can include estimated age
|
175
179
|
# and gender. This feature uses a built-in model, so no training is necessary. The
|
176
|
-
# Detect faces method does not support general biometric facial recognition.
|
180
|
+
# **Detect faces** method does not support general biometric facial recognition.
|
177
181
|
#
|
178
182
|
# Supported image formats include .gif, .jpg, .png, and .tif. The maximum image size
|
179
183
|
# is 10 MB. The minimum recommended pixel density is 32X32 pixels, but the service
|
@@ -315,32 +319,32 @@ module IBMWatson
|
|
315
319
|
end
|
316
320
|
|
317
321
|
##
|
318
|
-
# @!method
|
319
|
-
#
|
320
|
-
# @param
|
321
|
-
#
|
322
|
-
|
323
|
-
|
324
|
-
|
322
|
+
# @!method list_classifiers(verbose: nil)
|
323
|
+
# Retrieve a list of classifiers.
|
324
|
+
# @param verbose [Boolean] Specify `true` to return details about the classifiers. Omit this parameter to
|
325
|
+
# return a brief list of classifiers.
|
326
|
+
# @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
|
327
|
+
def list_classifiers(verbose: nil)
|
325
328
|
headers = {
|
326
329
|
}
|
327
|
-
sdk_headers = Common.new.get_sdk_headers("watson_vision_combined", "V3", "
|
330
|
+
sdk_headers = Common.new.get_sdk_headers("watson_vision_combined", "V3", "list_classifiers")
|
328
331
|
headers.merge!(sdk_headers)
|
329
332
|
|
330
333
|
params = {
|
331
|
-
"version" => @version
|
334
|
+
"version" => @version,
|
335
|
+
"verbose" => verbose
|
332
336
|
}
|
333
337
|
|
334
|
-
method_url = "/v3/classifiers
|
338
|
+
method_url = "/v3/classifiers"
|
335
339
|
|
336
|
-
request(
|
337
|
-
method: "
|
340
|
+
response = request(
|
341
|
+
method: "GET",
|
338
342
|
url: method_url,
|
339
343
|
headers: headers,
|
340
344
|
params: params,
|
341
345
|
accept_json: true
|
342
346
|
)
|
343
|
-
|
347
|
+
response
|
344
348
|
end
|
345
349
|
|
346
350
|
##
|
@@ -373,42 +377,13 @@ module IBMWatson
|
|
373
377
|
response
|
374
378
|
end
|
375
379
|
|
376
|
-
##
|
377
|
-
# @!method list_classifiers(verbose: nil)
|
378
|
-
# Retrieve a list of classifiers.
|
379
|
-
# @param verbose [Boolean] Specify `true` to return details about the classifiers. Omit this parameter to
|
380
|
-
# return a brief list of classifiers.
|
381
|
-
# @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
|
382
|
-
def list_classifiers(verbose: nil)
|
383
|
-
headers = {
|
384
|
-
}
|
385
|
-
sdk_headers = Common.new.get_sdk_headers("watson_vision_combined", "V3", "list_classifiers")
|
386
|
-
headers.merge!(sdk_headers)
|
387
|
-
|
388
|
-
params = {
|
389
|
-
"version" => @version,
|
390
|
-
"verbose" => verbose
|
391
|
-
}
|
392
|
-
|
393
|
-
method_url = "/v3/classifiers"
|
394
|
-
|
395
|
-
response = request(
|
396
|
-
method: "GET",
|
397
|
-
url: method_url,
|
398
|
-
headers: headers,
|
399
|
-
params: params,
|
400
|
-
accept_json: true
|
401
|
-
)
|
402
|
-
response
|
403
|
-
end
|
404
|
-
|
405
380
|
##
|
406
381
|
# @!method update_classifier(classifier_id:, positive_examples: nil, negative_examples: nil, negative_examples_filename: nil)
|
407
382
|
# Update a classifier.
|
408
383
|
# Update a custom classifier by adding new positive or negative classes or by adding
|
409
384
|
# new images to existing classes. You must supply at least one set of positive or
|
410
385
|
# negative examples. For details, see [Updating custom
|
411
|
-
# classifiers](https://cloud.ibm.com/docs/services/visual-recognition
|
386
|
+
# classifiers](https://cloud.ibm.com/docs/services/visual-recognition?topic=visual-recognition-customizing#updating-custom-classifiers).
|
412
387
|
#
|
413
388
|
# Encode all names in UTF-8 if they contain non-ASCII characters (.zip and image
|
414
389
|
# file names, and classifier and class names). The service assumes UTF-8 encoding if
|
@@ -483,6 +458,35 @@ module IBMWatson
|
|
483
458
|
)
|
484
459
|
response
|
485
460
|
end
|
461
|
+
|
462
|
+
##
|
463
|
+
# @!method delete_classifier(classifier_id:)
|
464
|
+
# Delete a classifier.
|
465
|
+
# @param classifier_id [String] The ID of the classifier.
|
466
|
+
# @return [nil]
|
467
|
+
def delete_classifier(classifier_id:)
|
468
|
+
raise ArgumentError.new("classifier_id must be provided") if classifier_id.nil?
|
469
|
+
|
470
|
+
headers = {
|
471
|
+
}
|
472
|
+
sdk_headers = Common.new.get_sdk_headers("watson_vision_combined", "V3", "delete_classifier")
|
473
|
+
headers.merge!(sdk_headers)
|
474
|
+
|
475
|
+
params = {
|
476
|
+
"version" => @version
|
477
|
+
}
|
478
|
+
|
479
|
+
method_url = "/v3/classifiers/%s" % [ERB::Util.url_encode(classifier_id)]
|
480
|
+
|
481
|
+
request(
|
482
|
+
method: "DELETE",
|
483
|
+
url: method_url,
|
484
|
+
headers: headers,
|
485
|
+
params: params,
|
486
|
+
accept_json: true
|
487
|
+
)
|
488
|
+
nil
|
489
|
+
end
|
486
490
|
#########################
|
487
491
|
# Core ML
|
488
492
|
#########################
|
@@ -530,7 +534,7 @@ module IBMWatson
|
|
530
534
|
# You associate a customer ID with data by passing the `X-Watson-Metadata` header
|
531
535
|
# with a request that passes data. For more information about personal data and
|
532
536
|
# customer IDs, see [Information
|
533
|
-
# security](https://cloud.ibm.com/docs/services/visual-recognition
|
537
|
+
# security](https://cloud.ibm.com/docs/services/visual-recognition?topic=visual-recognition-information-security).
|
534
538
|
# @param customer_id [String] The customer ID for which all data is to be deleted.
|
535
539
|
# @return [nil]
|
536
540
|
def delete_user_data(customer_id:)
|
@@ -17,7 +17,6 @@ if !ENV["LANGUAGE_TRANSLATOR_APIKEY"].nil? && !ENV["LANGUAGE_TRANSLATOR_URL"].ni
|
|
17
17
|
)
|
18
18
|
@service.add_default_headers(
|
19
19
|
headers: {
|
20
|
-
"X-Watson-Learning-Opt-Out" => "1",
|
21
20
|
"X-Watson-Test" => "1"
|
22
21
|
}
|
23
22
|
)
|
@@ -59,6 +58,43 @@ if !ENV["LANGUAGE_TRANSLATOR_APIKEY"].nil? && !ENV["LANGUAGE_TRANSLATOR_URL"].ni
|
|
59
58
|
refute(service_response.nil?)
|
60
59
|
end
|
61
60
|
|
61
|
+
def test_translate_document
|
62
|
+
@service = IBMWatson::LanguageTranslatorV3.new(
|
63
|
+
iam_apikey: ENV["LANGUAGE_TRANSLATOR_APIKEY"],
|
64
|
+
url: ENV["LANGUAGE_TRANSLATOR_URL"],
|
65
|
+
version: "2018-05-01"
|
66
|
+
)
|
67
|
+
@service.add_default_headers(
|
68
|
+
headers: {
|
69
|
+
"X-Watson-Test" => "1"
|
70
|
+
}
|
71
|
+
)
|
72
|
+
|
73
|
+
File.open(Dir.getwd + "/resources/translation_doc.txt") do |file_info|
|
74
|
+
service_response = service.translate_document(
|
75
|
+
file: file_info,
|
76
|
+
filename: "translation_doc.txt",
|
77
|
+
model_id: "en-fr"
|
78
|
+
).result
|
79
|
+
refute(service_response.nil?)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_list_documents
|
84
|
+
@service = IBMWatson::LanguageTranslatorV3.new(
|
85
|
+
iam_apikey: ENV["LANGUAGE_TRANSLATOR_APIKEY"],
|
86
|
+
url: ENV["LANGUAGE_TRANSLATOR_URL"],
|
87
|
+
version: "2018-05-01"
|
88
|
+
)
|
89
|
+
@service.add_default_headers(
|
90
|
+
headers: {
|
91
|
+
"X-Watson-Test" => "1"
|
92
|
+
}
|
93
|
+
)
|
94
|
+
service_response = service.list_documents.result
|
95
|
+
refute(service_response.nil?)
|
96
|
+
end
|
97
|
+
|
62
98
|
def test_list_identifiable_languages
|
63
99
|
service_response = service.list_identifiable_languages.result
|
64
100
|
refute(service_response.nil?)
|
@@ -9,14 +9,14 @@ WebMock.disable_net_connect!(allow_localhost: true)
|
|
9
9
|
# Unit tests for the Language Translator V3 Service
|
10
10
|
class LanguageTranslatorV3Test < Minitest::Test
|
11
11
|
def test_translate_source_target
|
12
|
-
stub_request(:post, "https://iam.
|
12
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
13
13
|
.with(
|
14
14
|
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
15
15
|
headers: {
|
16
16
|
"Accept" => "application/json",
|
17
17
|
"Authorization" => "Basic Yng6Yng=",
|
18
18
|
"Content-Type" => "application/x-www-form-urlencoded",
|
19
|
-
"Host" => "iam.
|
19
|
+
"Host" => "iam.cloud.ibm.com"
|
20
20
|
}
|
21
21
|
).to_return(
|
22
22
|
status: 200,
|
@@ -57,14 +57,14 @@ class LanguageTranslatorV3Test < Minitest::Test
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def test_translate_model_id
|
60
|
-
stub_request(:post, "https://iam.
|
60
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
61
61
|
.with(
|
62
62
|
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
63
63
|
headers: {
|
64
64
|
"Accept" => "application/json",
|
65
65
|
"Authorization" => "Basic Yng6Yng=",
|
66
66
|
"Content-Type" => "application/x-www-form-urlencoded",
|
67
|
-
"Host" => "iam.
|
67
|
+
"Host" => "iam.cloud.ibm.com"
|
68
68
|
}
|
69
69
|
).to_return(
|
70
70
|
status: 200,
|
@@ -108,14 +108,14 @@ class LanguageTranslatorV3Test < Minitest::Test
|
|
108
108
|
end
|
109
109
|
|
110
110
|
def test_identify
|
111
|
-
stub_request(:post, "https://iam.
|
111
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
112
112
|
.with(
|
113
113
|
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
114
114
|
headers: {
|
115
115
|
"Accept" => "application/json",
|
116
116
|
"Authorization" => "Basic Yng6Yng=",
|
117
117
|
"Content-Type" => "application/x-www-form-urlencoded",
|
118
|
-
"Host" => "iam.
|
118
|
+
"Host" => "iam.cloud.ibm.com"
|
119
119
|
}
|
120
120
|
).to_return(
|
121
121
|
status: 200,
|
@@ -165,14 +165,14 @@ class LanguageTranslatorV3Test < Minitest::Test
|
|
165
165
|
end
|
166
166
|
|
167
167
|
def test_list_identifiable_languages
|
168
|
-
stub_request(:post, "https://iam.
|
168
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
169
169
|
.with(
|
170
170
|
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
171
171
|
headers: {
|
172
172
|
"Accept" => "application/json",
|
173
173
|
"Authorization" => "Basic Yng6Yng=",
|
174
174
|
"Content-Type" => "application/x-www-form-urlencoded",
|
175
|
-
"Host" => "iam.
|
175
|
+
"Host" => "iam.cloud.ibm.com"
|
176
176
|
}
|
177
177
|
).to_return(
|
178
178
|
status: 200,
|
@@ -230,14 +230,14 @@ class LanguageTranslatorV3Test < Minitest::Test
|
|
230
230
|
end
|
231
231
|
|
232
232
|
def test_create_model
|
233
|
-
stub_request(:post, "https://iam.
|
233
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
234
234
|
.with(
|
235
235
|
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
236
236
|
headers: {
|
237
237
|
"Accept" => "application/json",
|
238
238
|
"Authorization" => "Basic Yng6Yng=",
|
239
239
|
"Content-Type" => "application/x-www-form-urlencoded",
|
240
|
-
"Host" => "iam.
|
240
|
+
"Host" => "iam.cloud.ibm.com"
|
241
241
|
}
|
242
242
|
).to_return(
|
243
243
|
status: 200,
|
@@ -300,14 +300,14 @@ class LanguageTranslatorV3Test < Minitest::Test
|
|
300
300
|
end
|
301
301
|
|
302
302
|
def test_delete_model
|
303
|
-
stub_request(:post, "https://iam.
|
303
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
304
304
|
.with(
|
305
305
|
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
306
306
|
headers: {
|
307
307
|
"Accept" => "application/json",
|
308
308
|
"Authorization" => "Basic Yng6Yng=",
|
309
309
|
"Content-Type" => "application/x-www-form-urlencoded",
|
310
|
-
"Host" => "iam.
|
310
|
+
"Host" => "iam.cloud.ibm.com"
|
311
311
|
}
|
312
312
|
).to_return(
|
313
313
|
status: 200,
|
@@ -342,14 +342,14 @@ class LanguageTranslatorV3Test < Minitest::Test
|
|
342
342
|
end
|
343
343
|
|
344
344
|
def test_get_model
|
345
|
-
stub_request(:post, "https://iam.
|
345
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
346
346
|
.with(
|
347
347
|
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
348
348
|
headers: {
|
349
349
|
"Accept" => "application/json",
|
350
350
|
"Authorization" => "Basic Yng6Yng=",
|
351
351
|
"Content-Type" => "application/x-www-form-urlencoded",
|
352
|
-
"Host" => "iam.
|
352
|
+
"Host" => "iam.cloud.ibm.com"
|
353
353
|
}
|
354
354
|
).to_return(
|
355
355
|
status: 200,
|
@@ -393,14 +393,14 @@ class LanguageTranslatorV3Test < Minitest::Test
|
|
393
393
|
end
|
394
394
|
|
395
395
|
def test_list_models
|
396
|
-
stub_request(:post, "https://iam.
|
396
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
397
397
|
.with(
|
398
398
|
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
399
399
|
headers: {
|
400
400
|
"Accept" => "application/json",
|
401
401
|
"Authorization" => "Basic Yng6Yng=",
|
402
402
|
"Content-Type" => "application/x-www-form-urlencoded",
|
403
|
-
"Host" => "iam.
|
403
|
+
"Host" => "iam.cloud.ibm.com"
|
404
404
|
}
|
405
405
|
).to_return(
|
406
406
|
status: 200,
|
@@ -456,4 +456,189 @@ class LanguageTranslatorV3Test < Minitest::Test
|
|
456
456
|
service_response = service.list_models
|
457
457
|
assert_equal(expected, service_response.result)
|
458
458
|
end
|
459
|
+
|
460
|
+
def test_lis_documents
|
461
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
462
|
+
.with(
|
463
|
+
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
464
|
+
headers: {
|
465
|
+
"Accept" => "application/json",
|
466
|
+
"Authorization" => "Basic Yng6Yng=",
|
467
|
+
"Content-Type" => "application/x-www-form-urlencoded",
|
468
|
+
"Host" => "iam.cloud.ibm.com"
|
469
|
+
}
|
470
|
+
).to_return(
|
471
|
+
status: 200,
|
472
|
+
body: {
|
473
|
+
"access_token" => "oAeisG8yqPY7sFR_x66Z15",
|
474
|
+
"token_type" => "Bearer",
|
475
|
+
"expires_in" => 3600,
|
476
|
+
"expiration" => 1_524_167_011,
|
477
|
+
"refresh_token" => "jy4gl91BQ"
|
478
|
+
}.to_json,
|
479
|
+
headers: {}
|
480
|
+
)
|
481
|
+
service = IBMWatson::LanguageTranslatorV3.new(
|
482
|
+
version: "2018-05-01",
|
483
|
+
iam_apikey: "iam_apikey"
|
484
|
+
)
|
485
|
+
expected = {}
|
486
|
+
stub_request(:get, "https://gateway.watsonplatform.net/language-translator/api/v3/documents?version=2018-05-01")
|
487
|
+
.with(
|
488
|
+
headers: {
|
489
|
+
"Accept" => "application/json",
|
490
|
+
"Authorization" => "Bearer oAeisG8yqPY7sFR_x66Z15",
|
491
|
+
"Host" => "gateway.watsonplatform.net"
|
492
|
+
}
|
493
|
+
).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
|
494
|
+
service_response = service.list_documents
|
495
|
+
assert_equal(expected, service_response.result)
|
496
|
+
end
|
497
|
+
|
498
|
+
def test_translate_document
|
499
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
500
|
+
.with(
|
501
|
+
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
502
|
+
headers: {
|
503
|
+
"Accept" => "application/json",
|
504
|
+
"Authorization" => "Basic Yng6Yng=",
|
505
|
+
"Content-Type" => "application/x-www-form-urlencoded",
|
506
|
+
"Host" => "iam.cloud.ibm.com"
|
507
|
+
}
|
508
|
+
).to_return(
|
509
|
+
status: 200,
|
510
|
+
body: {
|
511
|
+
"access_token" => "oAeisG8yqPY7sFR_x66Z15",
|
512
|
+
"token_type" => "Bearer",
|
513
|
+
"expires_in" => 3600,
|
514
|
+
"expiration" => 1_524_167_011,
|
515
|
+
"refresh_token" => "jy4gl91BQ"
|
516
|
+
}.to_json,
|
517
|
+
headers: {}
|
518
|
+
)
|
519
|
+
service = IBMWatson::LanguageTranslatorV3.new(
|
520
|
+
version: "2018-05-01",
|
521
|
+
iam_apikey: "iam_apikey"
|
522
|
+
)
|
523
|
+
stub_request(:post, "https://gateway.watsonplatform.net/language-translator/api/v3/documents?version=2018-05-01")
|
524
|
+
.with do |req|
|
525
|
+
assert_equal req.headers["Accept"], "application/json"
|
526
|
+
assert_match %r{\Amultipart/form-data}, req.headers["Content-Type"]
|
527
|
+
end
|
528
|
+
file = File.open(Dir.getwd + "/resources/translation_doc.txt")
|
529
|
+
service.translate_document(file: file, filename: "file")
|
530
|
+
end
|
531
|
+
|
532
|
+
def test_get_document_status
|
533
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
534
|
+
.with(
|
535
|
+
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
536
|
+
headers: {
|
537
|
+
"Accept" => "application/json",
|
538
|
+
"Authorization" => "Basic Yng6Yng=",
|
539
|
+
"Content-Type" => "application/x-www-form-urlencoded",
|
540
|
+
"Host" => "iam.cloud.ibm.com"
|
541
|
+
}
|
542
|
+
).to_return(
|
543
|
+
status: 200,
|
544
|
+
body: {
|
545
|
+
"access_token" => "oAeisG8yqPY7sFR_x66Z15",
|
546
|
+
"token_type" => "Bearer",
|
547
|
+
"expires_in" => 3600,
|
548
|
+
"expiration" => 1_524_167_011,
|
549
|
+
"refresh_token" => "jy4gl91BQ"
|
550
|
+
}.to_json,
|
551
|
+
headers: {}
|
552
|
+
)
|
553
|
+
service = IBMWatson::LanguageTranslatorV3.new(
|
554
|
+
version: "2018-05-01",
|
555
|
+
iam_apikey: "iam_apikey"
|
556
|
+
)
|
557
|
+
expected = {}
|
558
|
+
stub_request(:get, "https://gateway.watsonplatform.net/language-translator/api/v3/documents/id?version=2018-05-01")
|
559
|
+
.with(
|
560
|
+
headers: {
|
561
|
+
"Accept" => "application/json",
|
562
|
+
"Authorization" => "Bearer oAeisG8yqPY7sFR_x66Z15",
|
563
|
+
"Host" => "gateway.watsonplatform.net"
|
564
|
+
}
|
565
|
+
).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
|
566
|
+
service_response = service.get_document_status(document_id: "id")
|
567
|
+
assert_equal(expected, service_response.result)
|
568
|
+
end
|
569
|
+
|
570
|
+
def test_get_translated_document
|
571
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
572
|
+
.with(
|
573
|
+
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
574
|
+
headers: {
|
575
|
+
"Accept" => "application/json",
|
576
|
+
"Authorization" => "Basic Yng6Yng=",
|
577
|
+
"Content-Type" => "application/x-www-form-urlencoded",
|
578
|
+
"Host" => "iam.cloud.ibm.com"
|
579
|
+
}
|
580
|
+
).to_return(
|
581
|
+
status: 200,
|
582
|
+
body: {
|
583
|
+
"access_token" => "oAeisG8yqPY7sFR_x66Z15",
|
584
|
+
"token_type" => "Bearer",
|
585
|
+
"expires_in" => 3600,
|
586
|
+
"expiration" => 1_524_167_011,
|
587
|
+
"refresh_token" => "jy4gl91BQ"
|
588
|
+
}.to_json,
|
589
|
+
headers: {}
|
590
|
+
)
|
591
|
+
service = IBMWatson::LanguageTranslatorV3.new(
|
592
|
+
version: "2018-05-01",
|
593
|
+
iam_apikey: "iam_apikey"
|
594
|
+
)
|
595
|
+
expected = {}
|
596
|
+
stub_request(:get, "https://gateway.watsonplatform.net/language-translator/api/v3/documents/id/translated_document?version=2018-05-01")
|
597
|
+
.with(
|
598
|
+
headers: {
|
599
|
+
"Accept" => "application/json",
|
600
|
+
"Authorization" => "Bearer oAeisG8yqPY7sFR_x66Z15",
|
601
|
+
"Host" => "gateway.watsonplatform.net"
|
602
|
+
}
|
603
|
+
).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
|
604
|
+
service_response = service.get_translated_document(document_id: "id")
|
605
|
+
assert_equal(expected, service_response.result)
|
606
|
+
end
|
607
|
+
|
608
|
+
def test_delete_document
|
609
|
+
stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
|
610
|
+
.with(
|
611
|
+
body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
|
612
|
+
headers: {
|
613
|
+
"Accept" => "application/json",
|
614
|
+
"Authorization" => "Basic Yng6Yng=",
|
615
|
+
"Content-Type" => "application/x-www-form-urlencoded",
|
616
|
+
"Host" => "iam.cloud.ibm.com"
|
617
|
+
}
|
618
|
+
).to_return(
|
619
|
+
status: 200,
|
620
|
+
body: {
|
621
|
+
"access_token" => "oAeisG8yqPY7sFR_x66Z15",
|
622
|
+
"token_type" => "Bearer",
|
623
|
+
"expires_in" => 3600,
|
624
|
+
"expiration" => 1_524_167_011,
|
625
|
+
"refresh_token" => "jy4gl91BQ"
|
626
|
+
}.to_json,
|
627
|
+
headers: {}
|
628
|
+
)
|
629
|
+
service = IBMWatson::LanguageTranslatorV3.new(
|
630
|
+
version: "2018-05-01",
|
631
|
+
iam_apikey: "iam_apikey"
|
632
|
+
)
|
633
|
+
expected = {}
|
634
|
+
stub_request(:delete, "https://gateway.watsonplatform.net/language-translator/api/v3/documents/id?version=2018-05-01")
|
635
|
+
.with(
|
636
|
+
headers: {
|
637
|
+
"Authorization" => "Bearer oAeisG8yqPY7sFR_x66Z15",
|
638
|
+
"Host" => "gateway.watsonplatform.net"
|
639
|
+
}
|
640
|
+
).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
|
641
|
+
service_response = service.delete_document(document_id: "id")
|
642
|
+
assert_nil(service_response)
|
643
|
+
end
|
459
644
|
end
|
@@ -280,7 +280,7 @@ class SpeechToTextV1Test < Minitest::Test
|
|
280
280
|
service_response = service.train_language_model(
|
281
281
|
customization_id: "customid"
|
282
282
|
)
|
283
|
-
|
283
|
+
refute_nil(service_response)
|
284
284
|
|
285
285
|
stub_request(:get, "https://stream.watsonplatform.net/speech-to-text/api/v1/customizations/modelid")
|
286
286
|
.with(
|
@@ -353,7 +353,7 @@ class SpeechToTextV1Test < Minitest::Test
|
|
353
353
|
service_response = service.train_acoustic_model(
|
354
354
|
customization_id: "customid"
|
355
355
|
)
|
356
|
-
|
356
|
+
refute_nil(service_response)
|
357
357
|
|
358
358
|
stub_request(:get, "https://stream.watsonplatform.net/speech-to-text/api/v1/acoustic_customizations/modelid")
|
359
359
|
.with(
|