如果您查看官方片段DetectText.java之一,您会发现这个有趣的评论:
// 初始化将用于发送请求的客户端。这个客户端只需要创建一次,并且可以重复用于多个请求。完成所有请求后,调用客户端上的“关闭”方法以安全地清理任何剩余的后台资源。
这意味着一旦您让客户进行设置,您就可以拨打电话,但正如您所说,它没有提及任何关于订单的内容。更多信息ImageAnnotatorClient
可以在这里找到。
经过测试,我发现该批次是您提供的请求列表的same size
和。same order
您可以在此处找到BatchAnnotateImagesResponse
详细信息。
最后一点,我将在下面的代码中留下asyncBatchAnnotateImages
来自官方云视觉注释示例的更新版本的函数, 它可以进一步扩展图像注释的处理并检查它如何处理请求。(也许超出了当前范围,但我认为它可能有用)
public static void asyncBatchAnnotateImages(List<String> uris, String outputUri)
throws IOException, ExecutionException, InterruptedException {
try (ImageAnnotatorClient imageAnnotatorClient = ImageAnnotatorClient.create()) {
List<AnnotateImageRequest> imageRequests = new ArrayList<AnnotateImageRequest>();
for (String inputImageUri : uris) {
ImageSource source = ImageSource.newBuilder().setImageUri(inputImageUri).build();
Image image = Image.newBuilder().setSource(source).build();
Feature feature = Feature.newBuilder().setType(Feature.Type.LABEL_DETECTION).build();
AnnotateImageRequest imageRequest = AnnotateImageRequest.newBuilder().setImage(image).addFeatures(feature).build();
imageRequests.add(imageRequest);
}
GcsDestination gcsDestination = GcsDestination.newBuilder().setUri(outputUri).build();
OutputConfig outputConfig = OutputConfig.newBuilder()
.setGcsDestination(gcsDestination)
.setBatchSize(1) // The max number of responses to output in each JSON file
.build();
AsyncBatchAnnotateImagesRequest request = AsyncBatchAnnotateImagesRequest.newBuilder()
.addAllRequests(imageRequests)
.setOutputConfig(outputConfig)
.build();
AsyncBatchAnnotateImagesResponse response = imageAnnotatorClient.asyncBatchAnnotateImagesAsync(request).get();
String gcsOutputUri = response.getOutputConfig().getGcsDestination().getUri();
System.out.format("Output written to GCS with prefix: %s%n", gcsOutputUri);
}
}