Skip to content

create_ai_prompt async

create_ai_prompt(
    assistant_id: UuidOrArn,
    name: Name,
    type: AIPromptType,
    template_configuration: AIPromptTemplateConfiguration,
    visibility_status: VisibilityStatus,
    template_type: AIPromptTemplateType,
    model_id: AIPromptModelIdentifier,
    api_format: AIPromptAPIFormat,
    *,
    config_overrides: Optional[AsyncQConnectClientConfig] = None,
    client_token: Optional[ClientToken] = None,
    tags: Optional[Tags] = None,
    description: Optional[Description] = None,
    inference_configuration: Optional[AIPromptInferenceConfiguration] = None,
) -> CreateAIPromptResponse

Creates an Amazon Q in Connect AI Prompt.

Parameters:

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

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs..

  • assistant_id (UuidOrArn) –

    The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.

  • name (Name) –

    The name of the AI Prompt.

  • type (AIPromptType) –

    The type of this AI Prompt.

  • template_configuration (AIPromptTemplateConfiguration) –

    The configuration of the prompt template for this AI Prompt.

  • visibility_status (VisibilityStatus) –

    The visibility status of the AI Prompt.

  • template_type (AIPromptTemplateType) –

    The type of the prompt template for this AI Prompt.

  • model_id (AIPromptModelIdentifier) –

    The identifier of the model used for this AI Prompt.

    For information about which models are supported in each Amazon Web Services Region, see Supported models for system/custom prompts.

  • api_format (AIPromptAPIFormat) –

    The API Format of the AI Prompt.

    Recommended values: MESSAGES | TEXT_COMPLETIONS

    The values ANTHROPIC_CLAUDE_MESSAGES | ANTHROPIC_CLAUDE_TEXT_COMPLETIONS will be deprecated.

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

    The tags used to organize, track, or control access for this resource.

  • description (Optional[Description], default: None ) –

    The description of the AI Prompt.

  • inference_configuration (Optional[AIPromptInferenceConfiguration], default: None ) –

    The inference configuration for the AI Prompt being created.

Raises:

  • AccessDeniedException –

    You do not have sufficient access to perform this action.

  • ConflictException –

    The request could not be processed because of conflict in the current state of the resource. For example, if you're using a Create API (such as CreateAssistant) that accepts name, a conflicting resource (usually with the same name) is being created or mutated.

  • ResourceNotFoundException –

    The specified resource does not exist.

  • ServiceQuotaExceededException –

    You've exceeded your service quota. To perform the requested action, remove some of the relevant resources, or use service quotas to request a service quota increase.

  • ThrottlingException –

    The throttling limit has been exceeded.

  • UnauthorizedException –

    You do not have permission to perform this action.

  • ValidationException –

    The input fails to satisfy the constraints specified by a service.

  • UnknownServiceError –

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

Source code in docs_src/capo_qconnect/_services/async_q_connect.py
async def create_ai_prompt(
    self,
    assistant_id: "capo_qconnect.types.uuid_or_arn.UuidOrArn",
    name: "capo_qconnect.types.name.Name",
    type: "capo_qconnect.types.ai_prompt_type.AIPromptType",
    template_configuration: "capo_qconnect.types.ai_prompt_template_configuration.AIPromptTemplateConfiguration",
    visibility_status: "capo_qconnect.types.visibility_status.VisibilityStatus",
    template_type: "capo_qconnect.types.ai_prompt_template_type.AIPromptTemplateType",
    model_id: "capo_qconnect.types.ai_prompt_model_identifier.AIPromptModelIdentifier",
    api_format: "capo_qconnect.types.ai_prompt_api_format.AIPromptAPIFormat",
    *,
    config_overrides: Optional[AsyncQConnectClientConfig] = None,
    client_token: Optional["capo_qconnect.types.client_token.ClientToken"] = None,
    tags: Optional["capo_qconnect.types.tags.Tags"] = None,
    description: Optional["capo_qconnect.types.description.Description"] = None,
    inference_configuration: Optional[
        "capo_qconnect.types.ai_prompt_inference_configuration.AIPromptInferenceConfiguration"
    ] = None,
) -> "capo_qconnect.types.create_ai_prompt_response.CreateAIPromptResponse":
    """<p>Creates an Amazon Q in Connect AI Prompt.</p>

    Args:
        client_token: <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see <a href="http://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/">Making retries safe with idempotent APIs</a>..</p>
        assistant_id: <p>The identifier of the Amazon Q in Connect assistant. Can be either the ID or the ARN. URLs cannot contain the ARN.</p>
        name: <p>The name of the AI Prompt.</p>
        type: <p>The type of this AI Prompt.</p>
        template_configuration: <p>The configuration of the prompt template for this AI Prompt.</p>
        visibility_status: <p>The visibility status of the AI Prompt.</p>
        template_type: <p>The type of the prompt template for this AI Prompt.</p>
        model_id: <p>The identifier of the model used for this AI Prompt.</p> <note> <p>For information about which models are supported in each Amazon Web Services Region, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/create-ai-prompts.html#cli-create-aiprompt">Supported models for system/custom prompts</a>.</p> </note>
        api_format: <p>The API Format of the AI Prompt.</p> <p>Recommended values: <code>MESSAGES | TEXT_COMPLETIONS</code> </p> <note> <p>The values <code>ANTHROPIC_CLAUDE_MESSAGES | ANTHROPIC_CLAUDE_TEXT_COMPLETIONS</code> will be deprecated.</p> </note>
        tags: <p>The tags used to organize, track, or control access for this resource.</p>
        description: <p>The description of the AI Prompt.</p>
        inference_configuration: <p>The inference configuration for the AI Prompt being created.</p>

    Raises:
        capo_qconnect.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action.</p>
        capo_qconnect.errors.conflict_exception.ConflictException: <p>The request could not be processed because of conflict in the current state of the resource. For example, if you're using a <code>Create</code> API (such as <code>CreateAssistant</code>) that accepts name, a conflicting resource (usually with the same name) is being created or mutated.</p>
        capo_qconnect.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource does not exist.</p>
        capo_qconnect.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>You've exceeded your service quota. To perform the requested action, remove some of the relevant resources, or use service quotas to request a service quota increase.</p>
        capo_qconnect.errors.throttling_exception.ThrottlingException: <p>The throttling limit has been exceeded.</p>
        capo_qconnect.errors.unauthorized_exception.UnauthorizedException: <p>You do not have permission to perform this action.</p>
        capo_qconnect.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by a service.</p>
        capo_qconnect.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_qconnect.types.create_ai_prompt_request.CreateAIPromptRequest]",
    ) -> AsyncOperationResponse[
        "capo_qconnect.types.create_ai_prompt_response.CreateAIPromptResponse"
    ]:
        import capo_qconnect._operations.wisdom_service.create_ai_prompt

        (
            output,
            http_response,
        ) = await capo_qconnect._operations.wisdom_service.create_ai_prompt.async_create_ai_prompt(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_qconnect.types.create_ai_prompt_request.CreateAIPromptRequest",
    ) -> dict[str, Any]:
        import capo_qconnect.types.create_ai_prompt_request

        return capo_qconnect.types.create_ai_prompt_request.redact_sensitive(input_)

    def _redact_output(
        output: "capo_qconnect.types.create_ai_prompt_response.CreateAIPromptResponse",
    ) -> dict[str, Any]:
        import capo_qconnect.types.create_ai_prompt_response

        return capo_qconnect.types.create_ai_prompt_response.redact_sensitive(
            output
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging(
            "CreateAIPrompt",
            redact_input=_redact_input,
            redact_output=_redact_output,
        ),
    )
    input_: capo_qconnect.types.create_ai_prompt_request.CreateAIPromptRequest = {
        "assistant_id": assistant_id,
        "name": name,
        "type": type,
        "template_configuration": template_configuration,
        "visibility_status": visibility_status,
        "template_type": template_type,
        "model_id": model_id,
        "api_format": api_format,
    }
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token
    if tags is not None:
        input_["tags"] = tags
    if description is not None:
        input_["description"] = description
    if inference_configuration is not None:
        input_["inference_configuration"] = inference_configuration

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