new PredictionServiceClient([options])

Construct an instance of PredictionServiceClient.

Parameters

Name Type Optional Description

options

 

Yes

The configuration object. See the subsequent parameters for more details.

Values in options have the following properties:

Name Type Optional Description

credentials

 

Yes

Credentials object.

credentials.client_email

 

Yes

credentials.private_key

 

Yes

email

 

Yes

Account email address. Required when using a .pem or .p12 keyFilename.

keyFilename

 

Yes

Full path to the a .json, .pem, or .p12 key downloaded from the Google Developers Console. If you provide a path to a JSON file, the projectId option below is not necessary. NOTE: .pem and .p12 require you to specify options.email as well.

port

 

Yes

The port on which to connect to the remote host.

projectId

 

Yes

The project ID from the Google Developer's Console, e.g. 'grape-spaceship-123'. We will also check the environment variable GCLOUD_PROJECT for your project ID. If your app is running in an environment which supports Application Default Credentials, your project ID will be detected automatically.

promise

 

Yes

Custom promise module to use instead of native Promises.

servicePath

 

Yes

The domain name of the API remote host.

Properties

static

apiEndpoint

The DNS address for this API service - same as servicePath(), exists for compatibility reasons.

static

port

The port for this API service.

static

scopes

The scopes needed to make gRPC calls for every method defined in this service.

static

servicePath

The DNS address for this API service.

Methods

batchPredict(request[, options][, callback]) → Promise

Perform a batch prediction. Unlike the online Predict, batch prediction result won't be immediately available in the response. Instead, a long running operation object is returned. User can poll the operation result via GetOperation method. Once the operation is done, BatchPredictResult is returned in the response field. Available for following ML problems:

  • Video Classification
  • Video Object Tracking
  • Text Extraction
  • Tables

Example

const automl = require('@google-cloud/automl');

const client = new automl.v1beta1.PredictionServiceClient({
  // optional auth parameters.
});

const formattedName = client.modelPath('[PROJECT]', '[LOCATION]', '[MODEL]');
const inputConfig = {};
const outputConfig = {};
const request = {
  name: formattedName,
  inputConfig: inputConfig,
  outputConfig: outputConfig,
};

// Handle the operation using the promise pattern.
client.batchPredict(request)
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Operation#promise starts polling for the completion of the LRO.
    return operation.promise();
  })
  .then(responses => {
    const result = responses[0];
    const metadata = responses[1];
    const finalApiResponse = responses[2];
  })
  .catch(err => {
    console.error(err);
  });

const formattedName = client.modelPath('[PROJECT]', '[LOCATION]', '[MODEL]');
const inputConfig = {};
const outputConfig = {};
const request = {
  name: formattedName,
  inputConfig: inputConfig,
  outputConfig: outputConfig,
};

// Handle the operation using the event emitter pattern.
client.batchPredict(request)
  .then(responses => {
    const [operation, initialApiResponse] = responses;

    // Adding a listener for the "complete" event starts polling for the
    // completion of the operation.
    operation.on('complete', (result, metadata, finalApiResponse) => {
      // doSomethingWith(result);
    });

    // Adding a listener for the "progress" event causes the callback to be
    // called on any change in metadata when the operation is polled.
    operation.on('progress', (metadata, apiResponse) => {
      // doSomethingWith(metadata)
    });

    // Adding a listener for the "error" event handles any errors found during polling.
    operation.on('error', err => {
      // throw(err);
    });
  })
  .catch(err => {
    console.error(err);
  });

const formattedName = client.modelPath('[PROJECT]', '[LOCATION]', '[MODEL]');
const inputConfig = {};
const outputConfig = {};
const request = {
  name: formattedName,
  inputConfig: inputConfig,
  outputConfig: outputConfig,
};

// Handle the operation using the await pattern.
const [operation] = await client.batchPredict(request);

const [response] = await operation.promise();

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

name

string

 

Name of the model requested to serve the batch prediction.

inputConfig

Object

 

Required. The input configuration for batch prediction.

This object should have the same structure as BatchPredictInputConfig

outputConfig

Object

 

Required. The Configuration specifying where output predictions should be written.

This object should have the same structure as BatchPredictOutputConfig

params

Object with string properties

Yes

Additional domain-specific parameters for the predictions, any string must be up to 25000 characters long.

  • For Video Classification : score_threshold - (float) A value from 0.0 to 1.0. When the model makes predictions for a video, it will only produce results that have at least this confidence score. The default is 0.5. segment_classification - (boolean) Set to true to request segment-level classification. AutoML Video Intelligence returns labels and their confidence scores for the entire segment of the video that user specified in the request configuration. The default is "true". shot_classification - (boolean) Set to true to request shot-level classification. AutoML Video Intelligence determines the boundaries for each camera shot in the entire segment of the video that user specified in the request configuration. AutoML Video Intelligence then returns labels and their confidence scores for each detected shot, along with the start and end time of the shot. WARNING: Model evaluation is not done for this classification type, the quality of it depends on training data, but there are no metrics provided to describe that quality. The default is "false". 1s_interval_classification - (boolean) Set to true to request classification for a video at one-second intervals. AutoML Video Intelligence returns labels and their confidence scores for each second of the entire segment of the video that user specified in the request configuration. WARNING: Model evaluation is not done for this classification type, the quality of it depends on training data, but there are no metrics provided to describe that quality. The default is "false".

  • For Video Object Tracking: score_threshold - (float) When Model detects objects on video frames, it will only produce bounding boxes which have at least this confidence score. Value in 0 to 1 range, default is 0.5. max_bounding_box_count - (int64) No more than this number of bounding boxes will be returned per frame. Default is 100, the requested value may be limited by server. min_bounding_box_size - (float) Only bounding boxes with shortest edge at least that long as a relative value of video frame size will be returned. Value in 0 to 1 range. Default is 0.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is a gax.Operation object.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is a gax.Operation object. The promise has a method named "cancel" which cancels the ongoing API call.

getProjectId(callback)

Return the project ID used by this class.

Parameter

Name Type Optional Description

callback

function(Error, string)

 

the callback to be called with the current project Id.

matchLocationFromModelName(modelName) → String

Parse the modelName from a model resource.

Parameter

Name Type Optional Description

modelName

String

 

A fully-qualified path representing a model resources.

Returns

String 

  • A string representing the location.

matchModelFromModelName(modelName) → String

Parse the modelName from a model resource.

Parameter

Name Type Optional Description

modelName

String

 

A fully-qualified path representing a model resources.

Returns

String 

  • A string representing the model.

matchProjectFromModelName(modelName) → String

Parse the modelName from a model resource.

Parameter

Name Type Optional Description

modelName

String

 

A fully-qualified path representing a model resources.

Returns

String 

  • A string representing the project.

modelPath(project, location, model) → String

Return a fully-qualified model resource name string.

Parameters

Name Type Optional Description

project

String

 

location

String

 

model

String

 

Returns

String 

predict(request[, options][, callback]) → Promise

Perform an online prediction. The prediction result will be directly returned in the response. Available for following ML problems, and their expected request payloads:

  • Image Classification - Image in .JPEG, .GIF or .PNG format, image_bytes up to 30MB.
  • Image Object Detection - Image in .JPEG, .GIF or .PNG format, image_bytes up to 30MB.
  • Text Classification - TextSnippet, content up to 60,000 characters, UTF-8 encoded.
  • Text Extraction - TextSnippet, content up to 30,000 characters, UTF-8 NFC encoded.
  • Translation - TextSnippet, content up to 25,000 characters, UTF-8 encoded.
  • Tables - Row, with column values matching the columns of the model, up to 5MB. Not available for FORECASTING

prediction_type.

Example

const automl = require('@google-cloud/automl');

const client = new automl.v1beta1.PredictionServiceClient({
  // optional auth parameters.
});

const formattedName = client.modelPath('[PROJECT]', '[LOCATION]', '[MODEL]');
const payload = {};
const request = {
  name: formattedName,
  payload: payload,
};
client.predict(request)
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

name

string

 

Name of the model requested to serve the prediction.

payload

Object

 

Required. Payload to perform a prediction on. The payload must match the problem type that the model was trained to solve.

This object should have the same structure as ExamplePayload

params

Object with string properties

Yes

Additional domain-specific parameters, any string must be up to 25000 characters long.

  • For Image Classification:

    score_threshold - (float) A value from 0.0 to 1.0. When the model makes predictions for an image, it will only produce results that have at least this confidence score. The default is 0.5.

  • For Tables: feature_importance - (boolean) Whether

[feature_importance][[google.cloud.automl.v1beta1.TablesModelColumnInfo.feature_importance] should be populated in the returned

[TablesAnnotation(-s)][[google.cloud.automl.v1beta1.TablesAnnotation]. The default is false.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing PredictResponse.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is an object representing PredictResponse. The promise has a method named "cancel" which cancels the ongoing API call.