Skip to content

create_advanced_prompt_optimization_job async

create_advanced_prompt_optimization_job(
    job_name: AdvancedPromptOptimizationJobName,
    input_config: AdvancedPromptOptimizationInputConfig,
    output_config: AdvancedPromptOptimizationOutputConfig,
    model_configurations: ModelConfigurations,
    *,
    config_overrides: Optional[AsyncBedrockClientConfig] = None,
    job_description: Optional[AdvancedPromptOptimizationJobDescription] = None,
    client_token: Optional[IdempotencyToken] = None,
    encryption_key_arn: Optional[KmsKeyArn] = None,
    tags: Optional[TagList] = None,
) -> CreateAdvancedPromptOptimizationJobResponse

Creates an advanced prompt optimization job. The job optimizes your prompt templates for specific models using your evaluation dataset and criteria.

Parameters:

  • job_name (AdvancedPromptOptimizationJobName) –

    A name for the advanced prompt optimization job.

  • job_description (Optional[AdvancedPromptOptimizationJobDescription], default: None ) –

    A description of the advanced prompt optimization job.

  • client_token (Optional[IdempotencyToken], default: None ) –

    A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request but does not return an error.

  • input_config (AdvancedPromptOptimizationInputConfig) –

    Specifies the S3 location of your JSONL input file containing prompt templates and evaluation samples.

  • output_config (AdvancedPromptOptimizationOutputConfig) –

    Specifies the S3 location where optimization results will be stored.

  • encryption_key_arn (Optional[KmsKeyArn], default: None ) –

    The Amazon Resource Name (ARN) of the KMS key used for encrypting the output data. If not specified, the output is encrypted with an Amazon-owned KMS key.

  • tags (Optional[TagList], default: None ) –

    Tags to associate with the advanced prompt optimization job.

  • model_configurations (ModelConfigurations) –

    A list of model configurations specifying the target models for prompt optimization. You can specify up to 5 models.

Raises:

  • AccessDeniedException –

    The request is denied because of missing access permissions.

  • ConflictException –

    Error occurred because of a conflict while performing an operation.

  • InternalServerException –

    An internal server error occurred. Retry your request.

  • ResourceNotFoundException –

    The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again.

  • ServiceQuotaExceededException –

    The number of requests exceeds the service quota. Resubmit your request later.

  • ThrottlingException –

    The number of requests exceeds the limit. Resubmit your request later.

  • TooManyTagsException –

    The request contains more tags than can be associated with a resource (50 tags per resource). The maximum number of tags includes both existing tags and those included in your current request.

  • ValidationException –

    Input validation failed. Check your request parameters and retry the request.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_bedrock/_services/async_bedrock.py
async def create_advanced_prompt_optimization_job(
    self,
    job_name: "capo_bedrock.types.advanced_prompt_optimization_job_name.AdvancedPromptOptimizationJobName",
    input_config: "capo_bedrock.types.advanced_prompt_optimization_input_config.AdvancedPromptOptimizationInputConfig",
    output_config: "capo_bedrock.types.advanced_prompt_optimization_output_config.AdvancedPromptOptimizationOutputConfig",
    model_configurations: "capo_bedrock.types.model_configurations.ModelConfigurations",
    *,
    config_overrides: Optional[AsyncBedrockClientConfig] = None,
    job_description: Optional[
        "capo_bedrock.types.advanced_prompt_optimization_job_description.AdvancedPromptOptimizationJobDescription"
    ] = None,
    client_token: Optional[
        "capo_bedrock.types.idempotency_token.IdempotencyToken"
    ] = None,
    encryption_key_arn: Optional["capo_bedrock.types.kms_key_arn.KmsKeyArn"] = None,
    tags: Optional["capo_bedrock.types.tag_list.TagList"] = None,
) -> "capo_bedrock.types.create_advanced_prompt_optimization_job_response.CreateAdvancedPromptOptimizationJobResponse":
    """<p>Creates an advanced prompt optimization job. The job optimizes your prompt templates for specific models using your evaluation dataset and criteria.</p>

    Args:
        job_name: <p>A name for the advanced prompt optimization job.</p>
        job_description: <p>A description of the advanced prompt optimization job.</p>
        client_token: <p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request but does not return an error.</p>
        input_config: <p>Specifies the S3 location of your JSONL input file containing prompt templates and evaluation samples.</p>
        output_config: <p>Specifies the S3 location where optimization results will be stored.</p>
        encryption_key_arn: <p>The Amazon Resource Name (ARN) of the KMS key used for encrypting the output data. If not specified, the output is encrypted with an Amazon-owned KMS key.</p>
        tags: <p>Tags to associate with the advanced prompt optimization job.</p>
        model_configurations: <p>A list of model configurations specifying the target models for prompt optimization. You can specify up to 5 models.</p>

    Raises:
        capo_bedrock.errors.access_denied_exception.AccessDeniedException: <p>The request is denied because of missing access permissions.</p>
        capo_bedrock.errors.conflict_exception.ConflictException: <p>Error occurred because of a conflict while performing an operation.</p>
        capo_bedrock.errors.internal_server_exception.InternalServerException: <p>An internal server error occurred. Retry your request.</p>
        capo_bedrock.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again.</p>
        capo_bedrock.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The number of requests exceeds the service quota. Resubmit your request later.</p>
        capo_bedrock.errors.throttling_exception.ThrottlingException: <p>The number of requests exceeds the limit. Resubmit your request later.</p>
        capo_bedrock.errors.too_many_tags_exception.TooManyTagsException: <p>The request contains more tags than can be associated with a resource (50 tags per resource). The maximum number of tags includes both existing tags and those included in your current request. </p>
        capo_bedrock.errors.validation_exception.ValidationException: <p>Input validation failed. Check your request parameters and retry the request.</p>
        capo_bedrock.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_bedrock.types.create_advanced_prompt_optimization_job_request.CreateAdvancedPromptOptimizationJobRequest]",
    ) -> AsyncOperationResponse[
        "capo_bedrock.types.create_advanced_prompt_optimization_job_response.CreateAdvancedPromptOptimizationJobResponse"
    ]:
        import capo_bedrock._operations.amazon_bedrock_control_plane_service.create_advanced_prompt_optimization_job

        (
            output,
            http_response,
        ) = await capo_bedrock._operations.amazon_bedrock_control_plane_service.create_advanced_prompt_optimization_job.async_create_advanced_prompt_optimization_job(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateAdvancedPromptOptimizationJob")
    )
    input_: capo_bedrock.types.create_advanced_prompt_optimization_job_request.CreateAdvancedPromptOptimizationJobRequest = {
        "job_name": job_name,
        "input_config": input_config,
        "output_config": output_config,
        "model_configurations": model_configurations,
    }
    if job_description is not None:
        input_["job_description"] = job_description
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token
    if encryption_key_arn is not None:
        input_["encryption_key_arn"] = encryption_key_arn
    if tags is not None:
        input_["tags"] = tags

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output