google-cloud-automl 0.1.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.
Files changed (79) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +11 -0
  3. data/AUTHENTICATION.md +199 -0
  4. data/LICENSE +201 -0
  5. data/README.md +69 -0
  6. data/lib/google/cloud/automl/v1beta1/annotation_payload_pb.rb +34 -0
  7. data/lib/google/cloud/automl/v1beta1/annotation_spec_pb.rb +18 -0
  8. data/lib/google/cloud/automl/v1beta1/automl_client.rb +1914 -0
  9. data/lib/google/cloud/automl/v1beta1/automl_client_config.json +146 -0
  10. data/lib/google/cloud/automl/v1beta1/classification_pb.rb +65 -0
  11. data/lib/google/cloud/automl/v1beta1/column_spec_pb.rb +28 -0
  12. data/lib/google/cloud/automl/v1beta1/credentials.rb +41 -0
  13. data/lib/google/cloud/automl/v1beta1/data_items_pb.rb +48 -0
  14. data/lib/google/cloud/automl/v1beta1/data_stats_pb.rb +77 -0
  15. data/lib/google/cloud/automl/v1beta1/data_types_pb.rb +36 -0
  16. data/lib/google/cloud/automl/v1beta1/dataset_pb.rb +38 -0
  17. data/lib/google/cloud/automl/v1beta1/detection_pb.rb +52 -0
  18. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/annotation_payload.rb +63 -0
  19. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/annotation_spec.rb +41 -0
  20. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/classification.rb +203 -0
  21. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/column_spec.rb +72 -0
  22. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/data_items.rb +94 -0
  23. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/data_stats.rb +160 -0
  24. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/data_types.rb +107 -0
  25. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/dataset.rb +77 -0
  26. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/detection.rb +134 -0
  27. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/geometry.rb +43 -0
  28. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/image.rb +141 -0
  29. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/io.rb +975 -0
  30. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/model.rb +92 -0
  31. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/model_evaluation.rb +100 -0
  32. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/prediction_service.rb +136 -0
  33. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/ranges.rb +31 -0
  34. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/regression.rb +41 -0
  35. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/service.rb +368 -0
  36. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/table_spec.rb +64 -0
  37. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/tables.rb +261 -0
  38. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/temporal.rb +33 -0
  39. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/text.rb +53 -0
  40. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/text_extraction.rb +60 -0
  41. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/text_segment.rb +37 -0
  42. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/text_sentiment.rb +76 -0
  43. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/translation.rb +63 -0
  44. data/lib/google/cloud/automl/v1beta1/doc/google/cloud/automl/v1beta1/video.rb +35 -0
  45. data/lib/google/cloud/automl/v1beta1/doc/google/longrunning/operations.rb +51 -0
  46. data/lib/google/cloud/automl/v1beta1/doc/google/protobuf/any.rb +131 -0
  47. data/lib/google/cloud/automl/v1beta1/doc/google/protobuf/duration.rb +91 -0
  48. data/lib/google/cloud/automl/v1beta1/doc/google/protobuf/field_mask.rb +222 -0
  49. data/lib/google/cloud/automl/v1beta1/doc/google/protobuf/struct.rb +74 -0
  50. data/lib/google/cloud/automl/v1beta1/doc/google/protobuf/timestamp.rb +111 -0
  51. data/lib/google/cloud/automl/v1beta1/doc/google/rpc/status.rb +87 -0
  52. data/lib/google/cloud/automl/v1beta1/geometry_pb.rb +21 -0
  53. data/lib/google/cloud/automl/v1beta1/image_pb.rb +43 -0
  54. data/lib/google/cloud/automl/v1beta1/io_pb.rb +80 -0
  55. data/lib/google/cloud/automl/v1beta1/model_evaluation_pb.rb +37 -0
  56. data/lib/google/cloud/automl/v1beta1/model_pb.rb +44 -0
  57. data/lib/google/cloud/automl/v1beta1/operations_pb.rb +90 -0
  58. data/lib/google/cloud/automl/v1beta1/prediction_service_client.rb +442 -0
  59. data/lib/google/cloud/automl/v1beta1/prediction_service_client_config.json +36 -0
  60. data/lib/google/cloud/automl/v1beta1/prediction_service_pb.rb +39 -0
  61. data/lib/google/cloud/automl/v1beta1/prediction_service_services_pb.rb +72 -0
  62. data/lib/google/cloud/automl/v1beta1/ranges_pb.rb +17 -0
  63. data/lib/google/cloud/automl/v1beta1/regression_pb.rb +20 -0
  64. data/lib/google/cloud/automl/v1beta1/service_pb.rb +177 -0
  65. data/lib/google/cloud/automl/v1beta1/service_services_pb.rb +159 -0
  66. data/lib/google/cloud/automl/v1beta1/table_spec_pb.rb +22 -0
  67. data/lib/google/cloud/automl/v1beta1/tables_pb.rb +56 -0
  68. data/lib/google/cloud/automl/v1beta1/temporal_pb.rb +18 -0
  69. data/lib/google/cloud/automl/v1beta1/text_extraction_pb.rb +32 -0
  70. data/lib/google/cloud/automl/v1beta1/text_pb.rb +33 -0
  71. data/lib/google/cloud/automl/v1beta1/text_segment_pb.rb +18 -0
  72. data/lib/google/cloud/automl/v1beta1/text_sentiment_pb.rb +29 -0
  73. data/lib/google/cloud/automl/v1beta1/translation_pb.rb +33 -0
  74. data/lib/google/cloud/automl/v1beta1/video_pb.rb +25 -0
  75. data/lib/google/cloud/automl/v1beta1.rb +231 -0
  76. data/lib/google/cloud/automl/version.rb +22 -0
  77. data/lib/google/cloud/automl.rb +219 -0
  78. data/lib/google-cloud-automl.rb +15 -0
  79. metadata +203 -0
@@ -0,0 +1,442 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ # EDITING INSTRUCTIONS
16
+ # This file was generated from the file
17
+ # https://github.com/googleapis/googleapis/blob/master/google/cloud/automl/v1beta1/prediction_service.proto,
18
+ # and updates to that file get reflected here through a refresh process.
19
+ # For the short term, the refresh process will only be runnable by Google
20
+ # engineers.
21
+
22
+
23
+ require "json"
24
+ require "pathname"
25
+
26
+ require "google/gax"
27
+ require "google/gax/operation"
28
+ require "google/longrunning/operations_client"
29
+
30
+ require "google/cloud/automl/v1beta1/prediction_service_pb"
31
+ require "google/cloud/automl/v1beta1/credentials"
32
+ require "google/cloud/automl/version"
33
+
34
+ module Google
35
+ module Cloud
36
+ module AutoML
37
+ module V1beta1
38
+ # AutoML Prediction API.
39
+ #
40
+ # On any input that is documented to expect a string parameter in
41
+ # snake_case or kebab-case, either of those cases is accepted.
42
+ #
43
+ # @!attribute [r] prediction_service_stub
44
+ # @return [Google::Cloud::AutoML::V1beta1::PredictionService::Stub]
45
+ class PredictionServiceClient
46
+ # @private
47
+ attr_reader :prediction_service_stub
48
+
49
+ # The default address of the service.
50
+ SERVICE_ADDRESS = "automl.googleapis.com".freeze
51
+
52
+ # The default port of the service.
53
+ DEFAULT_SERVICE_PORT = 443
54
+
55
+ # The default set of gRPC interceptors.
56
+ GRPC_INTERCEPTORS = []
57
+
58
+ DEFAULT_TIMEOUT = 30
59
+
60
+ # The scopes needed to make gRPC calls to all of the methods defined in
61
+ # this service.
62
+ ALL_SCOPES = [
63
+ "https://www.googleapis.com/auth/cloud-platform"
64
+ ].freeze
65
+
66
+ class OperationsClient < Google::Longrunning::OperationsClient
67
+ self::SERVICE_ADDRESS = PredictionServiceClient::SERVICE_ADDRESS
68
+ self::GRPC_INTERCEPTORS = PredictionServiceClient::GRPC_INTERCEPTORS
69
+ end
70
+
71
+ MODEL_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
72
+ "projects/{project}/locations/{location}/models/{model}"
73
+ )
74
+
75
+ private_constant :MODEL_PATH_TEMPLATE
76
+
77
+ # Returns a fully-qualified model resource name string.
78
+ # @param project [String]
79
+ # @param location [String]
80
+ # @param model [String]
81
+ # @return [String]
82
+ def self.model_path project, location, model
83
+ MODEL_PATH_TEMPLATE.render(
84
+ :"project" => project,
85
+ :"location" => location,
86
+ :"model" => model
87
+ )
88
+ end
89
+
90
+ # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
91
+ # Provides the means for authenticating requests made by the client. This parameter can
92
+ # be many types.
93
+ # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
94
+ # authenticating requests made by this client.
95
+ # A `String` will be treated as the path to the keyfile to be used for the construction of
96
+ # credentials for this client.
97
+ # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
98
+ # credentials for this client.
99
+ # A `GRPC::Core::Channel` will be used to make calls through.
100
+ # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
101
+ # should already be composed with a `GRPC::Core::CallCredentials` object.
102
+ # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
103
+ # metadata for requests, generally, to give OAuth credentials.
104
+ # @param scopes [Array<String>]
105
+ # The OAuth scopes for this service. This parameter is ignored if
106
+ # an updater_proc is supplied.
107
+ # @param client_config [Hash]
108
+ # A Hash for call options for each method. See
109
+ # Google::Gax#construct_settings for the structure of
110
+ # this data. Falls back to the default config if not specified
111
+ # or the specified config is missing data points.
112
+ # @param timeout [Numeric]
113
+ # The default timeout, in seconds, for calls made through this client.
114
+ # @param metadata [Hash]
115
+ # Default metadata to be sent with each request. This can be overridden on a per call basis.
116
+ # @param service_address [String]
117
+ # Override for the service hostname, or `nil` to leave as the default.
118
+ # @param service_port [Integer]
119
+ # Override for the service port, or `nil` to leave as the default.
120
+ # @param exception_transformer [Proc]
121
+ # An optional proc that intercepts any exceptions raised during an API call to inject
122
+ # custom error handling.
123
+ def initialize \
124
+ credentials: nil,
125
+ scopes: ALL_SCOPES,
126
+ client_config: {},
127
+ timeout: DEFAULT_TIMEOUT,
128
+ metadata: nil,
129
+ service_address: nil,
130
+ service_port: nil,
131
+ exception_transformer: nil,
132
+ lib_name: nil,
133
+ lib_version: ""
134
+ # These require statements are intentionally placed here to initialize
135
+ # the gRPC module only when it's required.
136
+ # See https://github.com/googleapis/toolkit/issues/446
137
+ require "google/gax/grpc"
138
+ require "google/cloud/automl/v1beta1/prediction_service_services_pb"
139
+
140
+ credentials ||= Google::Cloud::AutoML::V1beta1::Credentials.default
141
+
142
+ @operations_client = OperationsClient.new(
143
+ credentials: credentials,
144
+ scopes: scopes,
145
+ client_config: client_config,
146
+ timeout: timeout,
147
+ lib_name: lib_name,
148
+ service_address: service_address,
149
+ service_port: service_port,
150
+ lib_version: lib_version,
151
+ metadata: metadata,
152
+ )
153
+
154
+ if credentials.is_a?(String) || credentials.is_a?(Hash)
155
+ updater_proc = Google::Cloud::AutoML::V1beta1::Credentials.new(credentials).updater_proc
156
+ end
157
+ if credentials.is_a?(GRPC::Core::Channel)
158
+ channel = credentials
159
+ end
160
+ if credentials.is_a?(GRPC::Core::ChannelCredentials)
161
+ chan_creds = credentials
162
+ end
163
+ if credentials.is_a?(Proc)
164
+ updater_proc = credentials
165
+ end
166
+ if credentials.is_a?(Google::Auth::Credentials)
167
+ updater_proc = credentials.updater_proc
168
+ end
169
+
170
+ package_version = Google::Cloud::AutoML::VERSION
171
+
172
+ google_api_client = "gl-ruby/#{RUBY_VERSION}"
173
+ google_api_client << " #{lib_name}/#{lib_version}" if lib_name
174
+ google_api_client << " gapic/#{package_version} gax/#{Google::Gax::VERSION}"
175
+ google_api_client << " grpc/#{GRPC::VERSION}"
176
+ google_api_client.freeze
177
+
178
+ headers = { :"x-goog-api-client" => google_api_client }
179
+ headers.merge!(metadata) unless metadata.nil?
180
+ client_config_file = Pathname.new(__dir__).join(
181
+ "prediction_service_client_config.json"
182
+ )
183
+ defaults = client_config_file.open do |f|
184
+ Google::Gax.construct_settings(
185
+ "google.cloud.automl.v1beta1.PredictionService",
186
+ JSON.parse(f.read),
187
+ client_config,
188
+ Google::Gax::Grpc::STATUS_CODE_NAMES,
189
+ timeout,
190
+ errors: Google::Gax::Grpc::API_ERRORS,
191
+ metadata: headers
192
+ )
193
+ end
194
+
195
+ # Allow overriding the service path/port in subclasses.
196
+ service_path = service_address || self.class::SERVICE_ADDRESS
197
+ port = service_port || self.class::DEFAULT_SERVICE_PORT
198
+ interceptors = self.class::GRPC_INTERCEPTORS
199
+ @prediction_service_stub = Google::Gax::Grpc.create_stub(
200
+ service_path,
201
+ port,
202
+ chan_creds: chan_creds,
203
+ channel: channel,
204
+ updater_proc: updater_proc,
205
+ scopes: scopes,
206
+ interceptors: interceptors,
207
+ &Google::Cloud::AutoML::V1beta1::PredictionService::Stub.method(:new)
208
+ )
209
+
210
+ @predict = Google::Gax.create_api_call(
211
+ @prediction_service_stub.method(:predict),
212
+ defaults["predict"],
213
+ exception_transformer: exception_transformer,
214
+ params_extractor: proc do |request|
215
+ {'name' => request.name}
216
+ end
217
+ )
218
+ @batch_predict = Google::Gax.create_api_call(
219
+ @prediction_service_stub.method(:batch_predict),
220
+ defaults["batch_predict"],
221
+ exception_transformer: exception_transformer,
222
+ params_extractor: proc do |request|
223
+ {'name' => request.name}
224
+ end
225
+ )
226
+ end
227
+
228
+ # Service calls
229
+
230
+ # Perform an online prediction. The prediction result will be directly
231
+ # returned in the response.
232
+ # Available for following ML problems, and their expected request payloads:
233
+ # * Image Classification - Image in .JPEG, .GIF or .PNG format, image_bytes
234
+ # up to 30MB.
235
+ # * Image Object Detection - Image in .JPEG, .GIF or .PNG format, image_bytes
236
+ # up to 30MB.
237
+ # * Text Classification - TextSnippet, content up to 60,000 characters,
238
+ # UTF-8 encoded.
239
+ # * Text Extraction - TextSnippet, content up to 30,000 characters,
240
+ # UTF-8 NFC encoded.
241
+ # * Translation - TextSnippet, content up to 25,000 characters, UTF-8
242
+ # encoded.
243
+ # * Tables - Row, with column values matching the columns of the model,
244
+ # up to 5MB. Not available for FORECASTING
245
+ #
246
+ # {Google::Cloud::AutoML::V1beta1::TablesModelMetadata#prediction_type prediction_type}.
247
+ #
248
+ # @param name [String]
249
+ # Name of the model requested to serve the prediction.
250
+ # @param payload [Google::Cloud::AutoML::V1beta1::ExamplePayload | Hash]
251
+ # Required.
252
+ # Payload to perform a prediction on. The payload must match the
253
+ # problem type that the model was trained to solve.
254
+ # A hash of the same form as `Google::Cloud::AutoML::V1beta1::ExamplePayload`
255
+ # can also be provided.
256
+ # @param params [Hash{String => String}]
257
+ # Additional domain-specific parameters, any string must be up to 25000
258
+ # characters long.
259
+ #
260
+ # * For Image Classification:
261
+ #
262
+ # `score_threshold` - (float) A value from 0.0 to 1.0. When the model
263
+ # makes predictions for an image, it will only produce results that have
264
+ # at least this confidence score. The default is 0.5.
265
+ # * For Tables:
266
+ # `feature_importance` - (boolean) Whether
267
+ #
268
+ # [feature_importance][[google.cloud.automl.v1beta1.TablesModelColumnInfo.feature_importance]
269
+ # should be populated in the returned
270
+ #
271
+ # [TablesAnnotation(-s)][[google.cloud.automl.v1beta1.TablesAnnotation].
272
+ # The default is false.
273
+ # @param options [Google::Gax::CallOptions]
274
+ # Overrides the default settings for this call, e.g, timeout,
275
+ # retries, etc.
276
+ # @yield [result, operation] Access the result along with the RPC operation
277
+ # @yieldparam result [Google::Cloud::AutoML::V1beta1::PredictResponse]
278
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
279
+ # @return [Google::Cloud::AutoML::V1beta1::PredictResponse]
280
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
281
+ # @example
282
+ # require "google/cloud/automl"
283
+ #
284
+ # prediction_client = Google::Cloud::AutoML::Prediction.new(version: :v1beta1)
285
+ # formatted_name = Google::Cloud::AutoML::V1beta1::PredictionServiceClient.model_path("[PROJECT]", "[LOCATION]", "[MODEL]")
286
+ #
287
+ # # TODO: Initialize `payload`:
288
+ # payload = {}
289
+ # response = prediction_client.predict(formatted_name, payload)
290
+
291
+ def predict \
292
+ name,
293
+ payload,
294
+ params: nil,
295
+ options: nil,
296
+ &block
297
+ req = {
298
+ name: name,
299
+ payload: payload,
300
+ params: params
301
+ }.delete_if { |_, v| v.nil? }
302
+ req = Google::Gax::to_proto(req, Google::Cloud::AutoML::V1beta1::PredictRequest)
303
+ @predict.call(req, options, &block)
304
+ end
305
+
306
+ # Perform a batch prediction. Unlike the online {Google::Cloud::AutoML::V1beta1::PredictionService::Predict Predict}, batch
307
+ # prediction result won't be immediately available in the response. Instead,
308
+ # a long running operation object is returned. User can poll the operation
309
+ # result via {Google::Longrunning::Operations::GetOperation GetOperation}
310
+ # method. Once the operation is done, {Google::Cloud::AutoML::V1beta1::BatchPredictResult BatchPredictResult} is returned in
311
+ # the {Google::Longrunning::Operation#response response} field.
312
+ # Available for following ML problems:
313
+ # * Video Classification
314
+ # * Video Object Tracking
315
+ # * Text Extraction
316
+ # * Tables
317
+ #
318
+ # @param name [String]
319
+ # Name of the model requested to serve the batch prediction.
320
+ # @param input_config [Google::Cloud::AutoML::V1beta1::BatchPredictInputConfig | Hash]
321
+ # Required. The input configuration for batch prediction.
322
+ # A hash of the same form as `Google::Cloud::AutoML::V1beta1::BatchPredictInputConfig`
323
+ # can also be provided.
324
+ # @param output_config [Google::Cloud::AutoML::V1beta1::BatchPredictOutputConfig | Hash]
325
+ # Required. The Configuration specifying where output predictions should
326
+ # be written.
327
+ # A hash of the same form as `Google::Cloud::AutoML::V1beta1::BatchPredictOutputConfig`
328
+ # can also be provided.
329
+ # @param params [Hash{String => String}]
330
+ # Additional domain-specific parameters for the predictions, any string must
331
+ # be up to 25000 characters long.
332
+ #
333
+ # * For Video Classification :
334
+ # `score_threshold` - (float) A value from 0.0 to 1.0. When the model
335
+ # makes predictions for a video, it will only produce results that
336
+ # have at least this confidence score. The default is 0.5.
337
+ # `segment_classification` - (boolean) Set to true to request
338
+ # segment-level classification. AutoML Video Intelligence returns
339
+ # labels and their confidence scores for the entire segment of the
340
+ # video that user specified in the request configuration.
341
+ # The default is "true".
342
+ # `shot_classification` - (boolean) Set to true to request shot-level
343
+ # classification. AutoML Video Intelligence determines the boundaries
344
+ # for each camera shot in the entire segment of the video that user
345
+ # specified in the request configuration. AutoML Video Intelligence
346
+ # then returns labels and their confidence scores for each detected
347
+ # shot, along with the start and end time of the shot.
348
+ # WARNING: Model evaluation is not done for this classification type,
349
+ # the quality of it depends on training data, but there are no metrics
350
+ # provided to describe that quality. The default is "false".
351
+ # `1s_interval_classification` - (boolean) Set to true to request
352
+ # classification for a video at one-second intervals. AutoML Video
353
+ # Intelligence returns labels and their confidence scores for each
354
+ # second of the entire segment of the video that user specified in the
355
+ # request configuration.
356
+ # WARNING: Model evaluation is not done for this classification
357
+ # type, the quality of it depends on training data, but there are no
358
+ # metrics provided to describe that quality. The default is
359
+ # "false".
360
+ #
361
+ # * For Video Object Tracking:
362
+ # `score_threshold` - (float) When Model detects objects on video frames,
363
+ # it will only produce bounding boxes which have at least this
364
+ # confidence score. Value in 0 to 1 range, default is 0.5.
365
+ # `max_bounding_box_count` - (int64) No more than this number of bounding
366
+ # boxes will be returned per frame. Default is 100, the requested
367
+ # value may be limited by server.
368
+ # `min_bounding_box_size` - (float) Only bounding boxes with shortest edge
369
+ # at least that long as a relative value of video frame size will be
370
+ # returned. Value in 0 to 1 range. Default is 0.
371
+ # @param options [Google::Gax::CallOptions]
372
+ # Overrides the default settings for this call, e.g, timeout,
373
+ # retries, etc.
374
+ # @return [Google::Gax::Operation]
375
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
376
+ # @example
377
+ # require "google/cloud/automl"
378
+ #
379
+ # prediction_client = Google::Cloud::AutoML::Prediction.new(version: :v1beta1)
380
+ # formatted_name = Google::Cloud::AutoML::V1beta1::PredictionServiceClient.model_path("[PROJECT]", "[LOCATION]", "[MODEL]")
381
+ #
382
+ # # TODO: Initialize `input_config`:
383
+ # input_config = {}
384
+ #
385
+ # # TODO: Initialize `output_config`:
386
+ # output_config = {}
387
+ #
388
+ # # Register a callback during the method call.
389
+ # operation = prediction_client.batch_predict(formatted_name, input_config, output_config) do |op|
390
+ # raise op.results.message if op.error?
391
+ # op_results = op.results
392
+ # # Process the results.
393
+ #
394
+ # metadata = op.metadata
395
+ # # Process the metadata.
396
+ # end
397
+ #
398
+ # # Or use the return value to register a callback.
399
+ # operation.on_done do |op|
400
+ # raise op.results.message if op.error?
401
+ # op_results = op.results
402
+ # # Process the results.
403
+ #
404
+ # metadata = op.metadata
405
+ # # Process the metadata.
406
+ # end
407
+ #
408
+ # # Manually reload the operation.
409
+ # operation.reload!
410
+ #
411
+ # # Or block until the operation completes, triggering callbacks on
412
+ # # completion.
413
+ # operation.wait_until_done!
414
+
415
+ def batch_predict \
416
+ name,
417
+ input_config,
418
+ output_config,
419
+ params: nil,
420
+ options: nil
421
+ req = {
422
+ name: name,
423
+ input_config: input_config,
424
+ output_config: output_config,
425
+ params: params
426
+ }.delete_if { |_, v| v.nil? }
427
+ req = Google::Gax::to_proto(req, Google::Cloud::AutoML::V1beta1::BatchPredictRequest)
428
+ operation = Google::Gax::Operation.new(
429
+ @batch_predict.call(req, options),
430
+ @operations_client,
431
+ Google::Cloud::AutoML::V1beta1::BatchPredictResult,
432
+ Google::Cloud::AutoML::V1beta1::OperationMetadata,
433
+ call_options: options
434
+ )
435
+ operation.on_done { |operation| yield(operation) } if block_given?
436
+ operation
437
+ end
438
+ end
439
+ end
440
+ end
441
+ end
442
+ end
@@ -0,0 +1,36 @@
1
+ {
2
+ "interfaces": {
3
+ "google.cloud.automl.v1beta1.PredictionService": {
4
+ "retry_codes": {
5
+ "idempotent": [
6
+ "DEADLINE_EXCEEDED",
7
+ "UNAVAILABLE"
8
+ ],
9
+ "non_idempotent": []
10
+ },
11
+ "retry_params": {
12
+ "default": {
13
+ "initial_retry_delay_millis": 100,
14
+ "retry_delay_multiplier": 1.3,
15
+ "max_retry_delay_millis": 60000,
16
+ "initial_rpc_timeout_millis": 60000,
17
+ "rpc_timeout_multiplier": 1.0,
18
+ "max_rpc_timeout_millis": 60000,
19
+ "total_timeout_millis": 600000
20
+ }
21
+ },
22
+ "methods": {
23
+ "Predict": {
24
+ "timeout_millis": 60000,
25
+ "retry_codes_name": "non_idempotent",
26
+ "retry_params_name": "default"
27
+ },
28
+ "BatchPredict": {
29
+ "timeout_millis": 20000,
30
+ "retry_codes_name": "non_idempotent",
31
+ "retry_params_name": "default"
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,39 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/cloud/automl/v1beta1/prediction_service.proto
3
+
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/api/annotations_pb'
8
+ require 'google/cloud/automl/v1beta1/annotation_payload_pb'
9
+ require 'google/cloud/automl/v1beta1/data_items_pb'
10
+ require 'google/cloud/automl/v1beta1/io_pb'
11
+ require 'google/cloud/automl/v1beta1/operations_pb'
12
+ require 'google/longrunning/operations_pb'
13
+ require 'google/api/client_pb'
14
+ Google::Protobuf::DescriptorPool.generated_pool.build do
15
+ add_message "google.cloud.automl.v1beta1.PredictRequest" do
16
+ optional :name, :string, 1
17
+ optional :payload, :message, 2, "google.cloud.automl.v1beta1.ExamplePayload"
18
+ map :params, :string, :string, 3
19
+ end
20
+ add_message "google.cloud.automl.v1beta1.PredictResponse" do
21
+ repeated :payload, :message, 1, "google.cloud.automl.v1beta1.AnnotationPayload"
22
+ map :metadata, :string, :string, 2
23
+ end
24
+ add_message "google.cloud.automl.v1beta1.BatchPredictRequest" do
25
+ optional :name, :string, 1
26
+ optional :input_config, :message, 3, "google.cloud.automl.v1beta1.BatchPredictInputConfig"
27
+ optional :output_config, :message, 4, "google.cloud.automl.v1beta1.BatchPredictOutputConfig"
28
+ map :params, :string, :string, 5
29
+ end
30
+ add_message "google.cloud.automl.v1beta1.BatchPredictResult" do
31
+ end
32
+ end
33
+
34
+ module Google::Cloud::AutoML::V1beta1
35
+ PredictRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.automl.v1beta1.PredictRequest").msgclass
36
+ PredictResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.automl.v1beta1.PredictResponse").msgclass
37
+ BatchPredictRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.automl.v1beta1.BatchPredictRequest").msgclass
38
+ BatchPredictResult = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.automl.v1beta1.BatchPredictResult").msgclass
39
+ end
@@ -0,0 +1,72 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: google/cloud/automl/v1beta1/prediction_service.proto for package 'Google::Cloud::AutoML::V1beta1'
3
+ # Original file comments:
4
+ # Copyright 2019 Google LLC.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ #
19
+
20
+
21
+ require 'grpc'
22
+ require 'google/cloud/automl/v1beta1/prediction_service_pb'
23
+
24
+ module Google::Cloud::AutoML::V1beta1
25
+ module PredictionService
26
+ # AutoML Prediction API.
27
+ #
28
+ # On any input that is documented to expect a string parameter in
29
+ # snake_case or kebab-case, either of those cases is accepted.
30
+ class Service
31
+
32
+ include GRPC::GenericService
33
+
34
+ self.marshal_class_method = :encode
35
+ self.unmarshal_class_method = :decode
36
+ self.service_name = 'google.cloud.automl.v1beta1.PredictionService'
37
+
38
+ # Perform an online prediction. The prediction result will be directly
39
+ # returned in the response.
40
+ # Available for following ML problems, and their expected request payloads:
41
+ # * Image Classification - Image in .JPEG, .GIF or .PNG format, image_bytes
42
+ # up to 30MB.
43
+ # * Image Object Detection - Image in .JPEG, .GIF or .PNG format, image_bytes
44
+ # up to 30MB.
45
+ # * Text Classification - TextSnippet, content up to 60,000 characters,
46
+ # UTF-8 encoded.
47
+ # * Text Extraction - TextSnippet, content up to 30,000 characters,
48
+ # UTF-8 NFC encoded.
49
+ # * Translation - TextSnippet, content up to 25,000 characters, UTF-8
50
+ # encoded.
51
+ # * Tables - Row, with column values matching the columns of the model,
52
+ # up to 5MB. Not available for FORECASTING
53
+ #
54
+ # [prediction_type][google.cloud.automl.v1beta1.TablesModelMetadata.prediction_type].
55
+ rpc :Predict, PredictRequest, PredictResponse
56
+ # Perform a batch prediction. Unlike the online [Predict][google.cloud.automl.v1beta1.PredictionService.Predict], batch
57
+ # prediction result won't be immediately available in the response. Instead,
58
+ # a long running operation object is returned. User can poll the operation
59
+ # result via [GetOperation][google.longrunning.Operations.GetOperation]
60
+ # method. Once the operation is done, [BatchPredictResult][google.cloud.automl.v1beta1.BatchPredictResult] is returned in
61
+ # the [response][google.longrunning.Operation.response] field.
62
+ # Available for following ML problems:
63
+ # * Video Classification
64
+ # * Video Object Tracking
65
+ # * Text Extraction
66
+ # * Tables
67
+ rpc :BatchPredict, BatchPredictRequest, Google::Longrunning::Operation
68
+ end
69
+
70
+ Stub = Service.rpc_stub_class
71
+ end
72
+ end
@@ -0,0 +1,17 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/cloud/automl/v1beta1/ranges.proto
3
+
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/api/annotations_pb'
8
+ Google::Protobuf::DescriptorPool.generated_pool.build do
9
+ add_message "google.cloud.automl.v1beta1.DoubleRange" do
10
+ optional :start, :double, 1
11
+ optional :end, :double, 2
12
+ end
13
+ end
14
+
15
+ module Google::Cloud::AutoML::V1beta1
16
+ DoubleRange = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.automl.v1beta1.DoubleRange").msgclass
17
+ end
@@ -0,0 +1,20 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/cloud/automl/v1beta1/regression.proto
3
+
4
+
5
+ require 'google/protobuf'
6
+
7
+ require 'google/api/annotations_pb'
8
+ Google::Protobuf::DescriptorPool.generated_pool.build do
9
+ add_message "google.cloud.automl.v1beta1.RegressionEvaluationMetrics" do
10
+ optional :root_mean_squared_error, :float, 1
11
+ optional :mean_absolute_error, :float, 2
12
+ optional :mean_absolute_percentage_error, :float, 3
13
+ optional :r_squared, :float, 4
14
+ optional :root_mean_squared_log_error, :float, 5
15
+ end
16
+ end
17
+
18
+ module Google::Cloud::AutoML::V1beta1
19
+ RegressionEvaluationMetrics = Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.automl.v1beta1.RegressionEvaluationMetrics").msgclass
20
+ end