@Generated(value="by gapic-generator-java") public class PredictionServiceClient extends Object implements com.google.api.gax.core.BackgroundResource
This class provides the ability to make remote calls to the backing service through method calls that map to API methods. Sample code to get started:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
EndpointName endpoint = EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]");
List<Value> instances = new ArrayList<>();
Value parameters = Value.newBuilder().build();
PredictResponse response = predictionServiceClient.predict(endpoint, instances, parameters);
}
Note: close() needs to be called on the PredictionServiceClient object to clean up resources such as threads. In the example above, try-with-resources is used, which automatically calls close().
The surface of this class includes several types of Java methods for each of the API's methods:
See the individual methods for example code.
Many parameters require resource names to be formatted in a particular way. To assist with these names, this class includes a format method for each type of name, and additionally a parse method to extract the individual identifiers contained within names that are returned.
This class can be customized by passing in a custom instance of PredictionServiceSettings to create(). For example:
To customize credentials:
PredictionServiceSettings predictionServiceSettings =
PredictionServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
.build();
PredictionServiceClient predictionServiceClient =
PredictionServiceClient.create(predictionServiceSettings);
To customize the endpoint:
PredictionServiceSettings predictionServiceSettings =
PredictionServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
PredictionServiceClient predictionServiceClient =
PredictionServiceClient.create(predictionServiceSettings);
Please refer to the GitHub repository's samples for more quickstart code snippets.
Modifier | Constructor and Description |
---|---|
protected |
PredictionServiceClient(PredictionServiceSettings settings)
Constructs an instance of PredictionServiceClient, using the given settings.
|
protected |
PredictionServiceClient(PredictionServiceStub stub) |
Modifier and Type | Method and Description |
---|---|
boolean |
awaitTermination(long duration,
TimeUnit unit) |
void |
close() |
static PredictionServiceClient |
create()
Constructs an instance of PredictionServiceClient with default settings.
|
static PredictionServiceClient |
create(PredictionServiceSettings settings)
Constructs an instance of PredictionServiceClient, using the given settings.
|
static PredictionServiceClient |
create(PredictionServiceStub stub)
Constructs an instance of PredictionServiceClient, using the given stub for making calls.
|
ExplainResponse |
explain(EndpointName endpoint,
List<com.google.protobuf.Value> instances,
com.google.protobuf.Value parameters,
String deployedModelId)
Perform an online explanation.
|
ExplainResponse |
explain(ExplainRequest request)
Perform an online explanation.
|
ExplainResponse |
explain(String endpoint,
List<com.google.protobuf.Value> instances,
com.google.protobuf.Value parameters,
String deployedModelId)
Perform an online explanation.
|
com.google.api.gax.rpc.UnaryCallable<ExplainRequest,ExplainResponse> |
explainCallable()
Perform an online explanation.
|
PredictionServiceSettings |
getSettings() |
PredictionServiceStub |
getStub() |
boolean |
isShutdown() |
boolean |
isTerminated() |
PredictResponse |
predict(EndpointName endpoint,
List<com.google.protobuf.Value> instances,
com.google.protobuf.Value parameters)
Perform an online prediction.
|
PredictResponse |
predict(PredictRequest request)
Perform an online prediction.
|
PredictResponse |
predict(String endpoint,
List<com.google.protobuf.Value> instances,
com.google.protobuf.Value parameters)
Perform an online prediction.
|
com.google.api.gax.rpc.UnaryCallable<PredictRequest,PredictResponse> |
predictCallable()
Perform an online prediction.
|
com.google.api.HttpBody |
rawPredict(EndpointName endpoint,
com.google.api.HttpBody httpBody)
Perform an online prediction with an arbitrary HTTP payload.
|
com.google.api.HttpBody |
rawPredict(RawPredictRequest request)
Perform an online prediction with an arbitrary HTTP payload.
|
com.google.api.HttpBody |
rawPredict(String endpoint,
com.google.api.HttpBody httpBody)
Perform an online prediction with an arbitrary HTTP payload.
|
com.google.api.gax.rpc.UnaryCallable<RawPredictRequest,com.google.api.HttpBody> |
rawPredictCallable()
Perform an online prediction with an arbitrary HTTP payload.
|
void |
shutdown() |
void |
shutdownNow() |
protected PredictionServiceClient(PredictionServiceSettings settings) throws IOException
IOException
@BetaApi(value="A restructuring of stub classes is planned, so this may break in the future") protected PredictionServiceClient(PredictionServiceStub stub)
public static final PredictionServiceClient create() throws IOException
IOException
public static final PredictionServiceClient create(PredictionServiceSettings settings) throws IOException
IOException
@BetaApi(value="A restructuring of stub classes is planned, so this may break in the future") public static final PredictionServiceClient create(PredictionServiceStub stub)
public final PredictionServiceSettings getSettings()
@BetaApi(value="A restructuring of stub classes is planned, so this may break in the future") public PredictionServiceStub getStub()
public final PredictResponse predict(EndpointName endpoint, List<com.google.protobuf.Value> instances, com.google.protobuf.Value parameters)
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
EndpointName endpoint = EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]");
List<Value> instances = new ArrayList<>();
Value parameters = Value.newBuilder().build();
PredictResponse response = predictionServiceClient.predict(endpoint, instances, parameters);
}
endpoint
- Required. The name of the Endpoint requested to serve the prediction. Format:
`projects/{project}/locations/{location}/endpoints/{endpoint}`instances
- Required. The instances that are the input to the prediction call. A
DeployedModel may have an upper limit on the number of instances it supports per request,
and when it is exceeded the prediction call errors in case of AutoML Models, or, in case of
customer created Models, the behaviour is as documented by that Model. The schema of any
single instance may be specified via Endpoint's DeployedModels'
[Model's][google.cloud.aiplatform.v1.DeployedModel.model]
[PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata]
[instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri].parameters
- The parameters that govern the prediction. The schema of the parameters may
be specified via Endpoint's DeployedModels' [Model's
][google.cloud.aiplatform.v1.DeployedModel.model]
[PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata]
[parameters_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.parameters_schema_uri].com.google.api.gax.rpc.ApiException
- if the remote call failspublic final PredictResponse predict(String endpoint, List<com.google.protobuf.Value> instances, com.google.protobuf.Value parameters)
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
String endpoint = EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]").toString();
List<Value> instances = new ArrayList<>();
Value parameters = Value.newBuilder().build();
PredictResponse response = predictionServiceClient.predict(endpoint, instances, parameters);
}
endpoint
- Required. The name of the Endpoint requested to serve the prediction. Format:
`projects/{project}/locations/{location}/endpoints/{endpoint}`instances
- Required. The instances that are the input to the prediction call. A
DeployedModel may have an upper limit on the number of instances it supports per request,
and when it is exceeded the prediction call errors in case of AutoML Models, or, in case of
customer created Models, the behaviour is as documented by that Model. The schema of any
single instance may be specified via Endpoint's DeployedModels'
[Model's][google.cloud.aiplatform.v1.DeployedModel.model]
[PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata]
[instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri].parameters
- The parameters that govern the prediction. The schema of the parameters may
be specified via Endpoint's DeployedModels' [Model's
][google.cloud.aiplatform.v1.DeployedModel.model]
[PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata]
[parameters_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.parameters_schema_uri].com.google.api.gax.rpc.ApiException
- if the remote call failspublic final PredictResponse predict(PredictRequest request)
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
PredictRequest request =
PredictRequest.newBuilder()
.setEndpoint(EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]").toString())
.addAllInstances(new ArrayList<Value>())
.setParameters(Value.newBuilder().build())
.build();
PredictResponse response = predictionServiceClient.predict(request);
}
request
- The request object containing all of the parameters for the API call.com.google.api.gax.rpc.ApiException
- if the remote call failspublic final com.google.api.gax.rpc.UnaryCallable<PredictRequest,PredictResponse> predictCallable()
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
PredictRequest request =
PredictRequest.newBuilder()
.setEndpoint(EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]").toString())
.addAllInstances(new ArrayList<Value>())
.setParameters(Value.newBuilder().build())
.build();
ApiFuture<PredictResponse> future =
predictionServiceClient.predictCallable().futureCall(request);
// Do something.
PredictResponse response = future.get();
}
public final com.google.api.HttpBody rawPredict(EndpointName endpoint, com.google.api.HttpBody httpBody)
The response includes the following HTTP headers:
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
EndpointName endpoint = EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]");
HttpBody httpBody = HttpBody.newBuilder().build();
HttpBody response = predictionServiceClient.rawPredict(endpoint, httpBody);
}
endpoint
- Required. The name of the Endpoint requested to serve the prediction. Format:
`projects/{project}/locations/{location}/endpoints/{endpoint}`httpBody
- The prediction input. Supports HTTP headers and arbitrary data payload.
A [DeployedModel][google.cloud.aiplatform.v1.DeployedModel] may have an upper limit on the number of instances it supports per request. When this limit it is exceeded for an AutoML model, the [RawPredict][google.cloud.aiplatform.v1.PredictionService.RawPredict] method returns an error. When this limit is exceeded for a custom-trained model, the behavior varies depending on the model.
You can specify the schema for each instance in the [predict_schemata.instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri] field when you create a [Model][google.cloud.aiplatform.v1.Model]. This schema applies when you deploy the `Model` as a `DeployedModel` to an [Endpoint][google.cloud.aiplatform.v1.Endpoint] and use the `RawPredict` method.
com.google.api.gax.rpc.ApiException
- if the remote call failspublic final com.google.api.HttpBody rawPredict(String endpoint, com.google.api.HttpBody httpBody)
The response includes the following HTTP headers:
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
String endpoint = EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]").toString();
HttpBody httpBody = HttpBody.newBuilder().build();
HttpBody response = predictionServiceClient.rawPredict(endpoint, httpBody);
}
endpoint
- Required. The name of the Endpoint requested to serve the prediction. Format:
`projects/{project}/locations/{location}/endpoints/{endpoint}`httpBody
- The prediction input. Supports HTTP headers and arbitrary data payload.
A [DeployedModel][google.cloud.aiplatform.v1.DeployedModel] may have an upper limit on the number of instances it supports per request. When this limit it is exceeded for an AutoML model, the [RawPredict][google.cloud.aiplatform.v1.PredictionService.RawPredict] method returns an error. When this limit is exceeded for a custom-trained model, the behavior varies depending on the model.
You can specify the schema for each instance in the [predict_schemata.instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri] field when you create a [Model][google.cloud.aiplatform.v1.Model]. This schema applies when you deploy the `Model` as a `DeployedModel` to an [Endpoint][google.cloud.aiplatform.v1.Endpoint] and use the `RawPredict` method.
com.google.api.gax.rpc.ApiException
- if the remote call failspublic final com.google.api.HttpBody rawPredict(RawPredictRequest request)
The response includes the following HTTP headers:
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
RawPredictRequest request =
RawPredictRequest.newBuilder()
.setEndpoint(EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]").toString())
.setHttpBody(HttpBody.newBuilder().build())
.build();
HttpBody response = predictionServiceClient.rawPredict(request);
}
request
- The request object containing all of the parameters for the API call.com.google.api.gax.rpc.ApiException
- if the remote call failspublic final com.google.api.gax.rpc.UnaryCallable<RawPredictRequest,com.google.api.HttpBody> rawPredictCallable()
The response includes the following HTTP headers:
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
RawPredictRequest request =
RawPredictRequest.newBuilder()
.setEndpoint(EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]").toString())
.setHttpBody(HttpBody.newBuilder().build())
.build();
ApiFuture<HttpBody> future = predictionServiceClient.rawPredictCallable().futureCall(request);
// Do something.
HttpBody response = future.get();
}
public final ExplainResponse explain(EndpointName endpoint, List<com.google.protobuf.Value> instances, com.google.protobuf.Value parameters, String deployedModelId)
If [deployed_model_id][google.cloud.aiplatform.v1.ExplainRequest.deployed_model_id] is specified, the corresponding DeployModel must have [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] populated. If [deployed_model_id][google.cloud.aiplatform.v1.ExplainRequest.deployed_model_id] is not specified, all DeployedModels must have [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] populated. Only deployed AutoML tabular Models have explanation_spec.
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
EndpointName endpoint = EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]");
List<Value> instances = new ArrayList<>();
Value parameters = Value.newBuilder().build();
String deployedModelId = "deployedModelId-1817547906";
ExplainResponse response =
predictionServiceClient.explain(endpoint, instances, parameters, deployedModelId);
}
endpoint
- Required. The name of the Endpoint requested to serve the explanation. Format:
`projects/{project}/locations/{location}/endpoints/{endpoint}`instances
- Required. The instances that are the input to the explanation call. A
DeployedModel may have an upper limit on the number of instances it supports per request,
and when it is exceeded the explanation call errors in case of AutoML Models, or, in case
of customer created Models, the behaviour is as documented by that Model. The schema of any
single instance may be specified via Endpoint's DeployedModels'
[Model's][google.cloud.aiplatform.v1.DeployedModel.model]
[PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata]
[instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri].parameters
- The parameters that govern the prediction. The schema of the parameters may
be specified via Endpoint's DeployedModels' [Model's
][google.cloud.aiplatform.v1.DeployedModel.model]
[PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata]
[parameters_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.parameters_schema_uri].deployedModelId
- If specified, this ExplainRequest will be served by the chosen
DeployedModel, overriding
[Endpoint.traffic_split][google.cloud.aiplatform.v1.Endpoint.traffic_split].com.google.api.gax.rpc.ApiException
- if the remote call failspublic final ExplainResponse explain(String endpoint, List<com.google.protobuf.Value> instances, com.google.protobuf.Value parameters, String deployedModelId)
If [deployed_model_id][google.cloud.aiplatform.v1.ExplainRequest.deployed_model_id] is specified, the corresponding DeployModel must have [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] populated. If [deployed_model_id][google.cloud.aiplatform.v1.ExplainRequest.deployed_model_id] is not specified, all DeployedModels must have [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] populated. Only deployed AutoML tabular Models have explanation_spec.
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
String endpoint = EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]").toString();
List<Value> instances = new ArrayList<>();
Value parameters = Value.newBuilder().build();
String deployedModelId = "deployedModelId-1817547906";
ExplainResponse response =
predictionServiceClient.explain(endpoint, instances, parameters, deployedModelId);
}
endpoint
- Required. The name of the Endpoint requested to serve the explanation. Format:
`projects/{project}/locations/{location}/endpoints/{endpoint}`instances
- Required. The instances that are the input to the explanation call. A
DeployedModel may have an upper limit on the number of instances it supports per request,
and when it is exceeded the explanation call errors in case of AutoML Models, or, in case
of customer created Models, the behaviour is as documented by that Model. The schema of any
single instance may be specified via Endpoint's DeployedModels'
[Model's][google.cloud.aiplatform.v1.DeployedModel.model]
[PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata]
[instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri].parameters
- The parameters that govern the prediction. The schema of the parameters may
be specified via Endpoint's DeployedModels' [Model's
][google.cloud.aiplatform.v1.DeployedModel.model]
[PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata]
[parameters_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.parameters_schema_uri].deployedModelId
- If specified, this ExplainRequest will be served by the chosen
DeployedModel, overriding
[Endpoint.traffic_split][google.cloud.aiplatform.v1.Endpoint.traffic_split].com.google.api.gax.rpc.ApiException
- if the remote call failspublic final ExplainResponse explain(ExplainRequest request)
If [deployed_model_id][google.cloud.aiplatform.v1.ExplainRequest.deployed_model_id] is specified, the corresponding DeployModel must have [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] populated. If [deployed_model_id][google.cloud.aiplatform.v1.ExplainRequest.deployed_model_id] is not specified, all DeployedModels must have [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] populated. Only deployed AutoML tabular Models have explanation_spec.
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
ExplainRequest request =
ExplainRequest.newBuilder()
.setEndpoint(EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]").toString())
.addAllInstances(new ArrayList<Value>())
.setParameters(Value.newBuilder().build())
.setExplanationSpecOverride(ExplanationSpecOverride.newBuilder().build())
.setDeployedModelId("deployedModelId-1817547906")
.build();
ExplainResponse response = predictionServiceClient.explain(request);
}
request
- The request object containing all of the parameters for the API call.com.google.api.gax.rpc.ApiException
- if the remote call failspublic final com.google.api.gax.rpc.UnaryCallable<ExplainRequest,ExplainResponse> explainCallable()
If [deployed_model_id][google.cloud.aiplatform.v1.ExplainRequest.deployed_model_id] is specified, the corresponding DeployModel must have [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] populated. If [deployed_model_id][google.cloud.aiplatform.v1.ExplainRequest.deployed_model_id] is not specified, all DeployedModels must have [explanation_spec][google.cloud.aiplatform.v1.DeployedModel.explanation_spec] populated. Only deployed AutoML tabular Models have explanation_spec.
Sample code:
try (PredictionServiceClient predictionServiceClient = PredictionServiceClient.create()) {
ExplainRequest request =
ExplainRequest.newBuilder()
.setEndpoint(EndpointName.of("[PROJECT]", "[LOCATION]", "[ENDPOINT]").toString())
.addAllInstances(new ArrayList<Value>())
.setParameters(Value.newBuilder().build())
.setExplanationSpecOverride(ExplanationSpecOverride.newBuilder().build())
.setDeployedModelId("deployedModelId-1817547906")
.build();
ApiFuture<ExplainResponse> future =
predictionServiceClient.explainCallable().futureCall(request);
// Do something.
ExplainResponse response = future.get();
}
public final void close()
close
in interface AutoCloseable
public void shutdown()
shutdown
in interface com.google.api.gax.core.BackgroundResource
public boolean isShutdown()
isShutdown
in interface com.google.api.gax.core.BackgroundResource
public boolean isTerminated()
isTerminated
in interface com.google.api.gax.core.BackgroundResource
public void shutdownNow()
shutdownNow
in interface com.google.api.gax.core.BackgroundResource
public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException
awaitTermination
in interface com.google.api.gax.core.BackgroundResource
InterruptedException
Copyright © 2022 Google LLC. All rights reserved.