createBatchInferenceJob method

Future<CreateBatchInferenceJobResponse> createBatchInferenceJob({
  1. required BatchInferenceJobInput jobInput,
  2. required String jobName,
  3. required BatchInferenceJobOutput jobOutput,
  4. required String roleArn,
  5. required String solutionVersionArn,
  6. BatchInferenceJobConfig? batchInferenceJobConfig,
  7. BatchInferenceJobMode? batchInferenceJobMode,
  8. String? filterArn,
  9. int? numResults,
  10. List<Tag>? tags,
  11. ThemeGenerationConfig? themeGenerationConfig,
})

Generates batch recommendations based on a list of items or users stored in Amazon S3 and exports the recommendations to an Amazon S3 bucket.

To generate batch recommendations, specify the ARN of a solution version and an Amazon S3 URI for the input and output data. For user personalization, popular items, and personalized ranking solutions, the batch inference job generates a list of recommended items for each user ID in the input file. For related items solutions, the job generates a list of recommended items for each item ID in the input file.

For more information, see Creating a batch inference job .

If you use the Similar-Items recipe, Amazon Personalize can add descriptive themes to batch recommendations. To generate themes, set the job's mode to THEME_GENERATION and specify the name of the field that contains item names in the input data.

For more information about generating themes, see Batch recommendations with themes from Content Generator .

You can't get batch recommendations with the Trending-Now or Next-Best-Action recipes.

May throw InvalidInputException. May throw LimitExceededException. May throw ResourceAlreadyExistsException. May throw ResourceInUseException. May throw ResourceNotFoundException. May throw TooManyTagsException.

Parameter jobInput : The Amazon S3 path that leads to the input file to base your recommendations on. The input material must be in JSON format.

Parameter jobName : The name of the batch inference job to create.

Parameter jobOutput : The path to the Amazon S3 bucket where the job's output will be stored.

Parameter roleArn : The ARN of the Amazon Identity and Access Management role that has permissions to read and write to your input and output Amazon S3 buckets respectively.

Parameter solutionVersionArn : The Amazon Resource Name (ARN) of the solution version that will be used to generate the batch inference recommendations.

Parameter batchInferenceJobConfig : The configuration details of a batch inference job.

Parameter batchInferenceJobMode : The mode of the batch inference job. To generate descriptive themes for groups of similar items, set the job mode to THEME_GENERATION. If you don't want to generate themes, use the default BATCH_INFERENCE.

When you get batch recommendations with themes, you will incur additional costs. For more information, see Amazon Personalize pricing.

Parameter filterArn : The ARN of the filter to apply to the batch inference job. For more information on using filters, see Filtering batch recommendations.

Parameter numResults : The number of recommendations to retrieve.

Parameter tags : A list of tags to apply to the batch inference job.

Parameter themeGenerationConfig : For theme generation jobs, specify the name of the column in your Items dataset that contains each item's name.

Implementation

Future<CreateBatchInferenceJobResponse> createBatchInferenceJob({
  required BatchInferenceJobInput jobInput,
  required String jobName,
  required BatchInferenceJobOutput jobOutput,
  required String roleArn,
  required String solutionVersionArn,
  BatchInferenceJobConfig? batchInferenceJobConfig,
  BatchInferenceJobMode? batchInferenceJobMode,
  String? filterArn,
  int? numResults,
  List<Tag>? tags,
  ThemeGenerationConfig? themeGenerationConfig,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AmazonPersonalize.CreateBatchInferenceJob'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'jobInput': jobInput,
      'jobName': jobName,
      'jobOutput': jobOutput,
      'roleArn': roleArn,
      'solutionVersionArn': solutionVersionArn,
      if (batchInferenceJobConfig != null)
        'batchInferenceJobConfig': batchInferenceJobConfig,
      if (batchInferenceJobMode != null)
        'batchInferenceJobMode': batchInferenceJobMode.value,
      if (filterArn != null) 'filterArn': filterArn,
      if (numResults != null) 'numResults': numResults,
      if (tags != null) 'tags': tags,
      if (themeGenerationConfig != null)
        'themeGenerationConfig': themeGenerationConfig,
    },
  );

  return CreateBatchInferenceJobResponse.fromJson(jsonResponse.body);
}