

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Amazon Bedrock 中使用提示管理器构建和存储可重复使用的提示
<a name="prompt-management"></a>

借助 Amazon Bedrock，您可以使用提示管理器创建和保存自己的提示，以便将相同的提示应用于不同的工作流，从而节省时间。创建提示时，您可以选择一个模型对其运行推理，并修改要使用的推理参数。您可以在提示中加入变量，从而针对不同的应用场景调整提示。

在测试提示时，您可以选择比较提示的不同变体，然后选择能够生成最适合您应用场景的输出的变体。在迭代提示时，您可以保存提示的不同版本。借助 [Amazon Bedrock 流](flows.md)，您可以将提示集成到您的应用程序。

以下是使用提示管理器的一般工作流：

1. 在提示管理器中创建要在不同应用场景中重复使用的提示。在模型提示中加入变量以提供灵活性。

1. 选择模型、推理配置文件或代理来针对提示运行推理，并根据需要修改推理配置。

1. 填写变量的测试值并运行提示。您可以创建提示的变体并比较不同变体的输出，从而选择最适合您应用场景的变体。

1. 通过以下方式之一将提示集成到您的应用程序：
   + 在[运行模型推理](inference.md)时指定提示。
   + 向[流](flows.md)添加提示节点并指定提示。

**Topics**
+ [关键定义](#prompt-management-definitions)
+ [提示管理器支持的区域和模型](prompt-management-supported.md)
+ [提示管理器的先决条件](prompt-management-prereq.md)
+ [使用提示管理器创建提示](prompt-management-create.md)
+ [使用提示管理器查看提示相关信息](prompt-management-view.md)
+ [使用提示管理器修改提示](prompt-management-modify.md)
+ [使用提示管理器测试提示](prompt-management-test.md)
+ [优化提示](prompt-management-optimize.md)
+ [使用提示管理器中的版本将提示部署到应用程序](prompt-management-deploy.md)
+ [在提示管理器中删除提示](prompt-management-delete.md)
+ [运行提示管理器示例代码](prompt-management-code-ex.md)

## 关键定义
<a name="prompt-management-definitions"></a>

以下列表介绍了提示管理器的基本概念：
+ **提示** – 提供给模型的输入，以便引导模型生成相应的响应或输出。
+ **变量** – 可以在提示中包含的占位符。在测试提示时或在运行时调用模型时，您可以为每个变量添加值。
+ **提示变体** – 提示的替代配置，包括其消息或者所使用的模型或推理配置。您可以创建提示的不同变体，对其进行测试，然后保存要保留的变体。
+ **提示生成器** – Amazon Bedrock 控制台中的一种工具，可让您在可视化界面中创建、编辑和测试提示及其变体。

# 提示管理器支持的区域和模型
<a name="prompt-management-supported"></a>

以下内容支持提示管理AWS 区域：
+ ap-northeast-1
+ ap-northeast-2
+ ap-northeast-3
+ ap-south-1
+ ap-south-2
+ ap-southeast-1
+ ap-southeast-2
+ ca-central-1
+ eu-central-1
+ eu-central-2
+ eu-north-1
+ eu-south-1
+ eu-south-2
+ eu-west-1
+ eu-west-2
+ eu-west-3
+ sa-east-1
+ us-east-1
+ us-east-2
+ us-gov-east-1
+ us-gov-west-1
+ us-west-2

您可以将提示管理器用于 [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) API 支持的任何文本模型。有关支持的模型列表，请参阅[支持的模型和模型功能](conversation-inference-supported-models-features.md)。

**注意**  
[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)并且[InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)只能处理来自配置指定AnthropicClaude或MetaLlama模型的 Prompt 管理的提示。

# 提示管理器的先决条件
<a name="prompt-management-prereq"></a>

对于要使用提示管理器的角色，您需要允许该角色执行一组特定的 API 操作。查看以下先决条件，确保满足适用于您的使用案例的先决条件：

1. 如果您的角色附加了[AmazonBedrockFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockFullAccess)AWS托管策略，则可以跳过此部分。否则，请按照[更新角色的权限策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html#id_roles_update-role-permissions-policy)中的步骤操作，并将以下策略附加到角色以提供执行与提示管理器相关的操作的权限：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PromptManagementPermissions",
               "Effect": "Allow",
               "Action": [
                   "bedrock:CreatePrompt",
                   "bedrock:UpdatePrompt",
                   "bedrock:GetPrompt",
                   "bedrock:ListPrompts",
                   "bedrock:DeletePrompt",
                   "bedrock:CreatePromptVersion",
                   "bedrock:OptimizePrompt",
                   "bedrock:GetFoundationModel",
                   "bedrock:ListFoundationModels",
                   "bedrock:GetInferenceProfile",
                   "bedrock:ListInferenceProfiles",
                   "bedrock:InvokeModel",
                   "bedrock:InvokeModelWithResponseStream",
                   "bedrock:RenderPrompt",
                   "bedrock:TagResource",
                   "bedrock:UntagResource",
                   "bedrock:ListTagsForResource"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   要进一步限制权限，您可以忽略操作，或者指定用于筛选权限的资源和条件键。有关操作、资源和条件键的更多信息，请参阅《服务授权参考》**中的以下主题：
   + [Amazon Bedrock 定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions) – 了解操作、您可以在 `Resource` 字段中限定范围的资源类型，以及 `Condition` 字段中可用于筛选权限的条件键。
   + [Amazon Bedrock 定义的资源类型](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-resources-for-iam-policies) – 了解 Amazon Bedrock 中的资源类型。
   + [Amazon Bedrock 的条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys) – 了解 Amazon Bedrock 中的条件键。
**注意**  
如果您计划使用 [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) API 来部署提示，请参阅[运行模型推理的先决条件](inference-prereq.md)，了解必须为调用提示设置的权限。
如果您计划使用 Amazon Bedrock 流中的[流](flows.md)来部署提示，请参阅 [Amazon Bedrock 流的先决条件](flows-prereq.md)，了解创建流必须设置的权限。

1. 如果您计划使用客户管理的密钥而不是使用客户管理的密钥来加密提示AWS 托管式密钥（有关更多信息，请参阅[AWS KMS密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)），请创建以下策略：

   1. 按照[创建密钥策略中的步骤操作，将以下密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html)附加到 KMS 密钥，以允许 Amazon Bedrock 使用密钥加密和解密提示，必要时将其替换。*values*该策略在 `Condition` 字段中包含了可选的条件键（参阅 [Amazon Bedrock 的条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)和 [AWS 全局条件上下文键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)），建议您将其作为最佳安全实践使用。

      ```
      {
          "Sid": "EncryptFlowKMS",
          "Effect": "Allow",
          "Principal": {
              "Service": "bedrock.amazonaws.com"
          },
          "Action": [
              "kms:GenerateDataKey",
              "kms:Decrypt"
          ],
          "Resource": "*",
          "Condition": {
              "StringEquals": {
                  "kms:EncryptionContext:aws:bedrock-prompts:arn": "arn:${partition}:bedrock:${region}:${account-id}:prompt/${prompt-id}"
              }
          }
      }
      ```

   1. 按照[更新角色权限策略中的](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html#id_roles_update-role-permissions-policy)步骤操作，将以下策略附加到提示管理角色，必要时*values*将其替换，以允许其生成和解密客户托管密钥以获得提示。该策略在 `Condition` 字段中包含了可选的条件键（参阅 [Amazon Bedrock 的条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)和 [AWS 全局条件上下文键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-policy-keys)），建议您将其作为最佳安全实践使用。

      ```
      {
          "Sid": "KMSPermissions",
          "Effect": "Allow",
          "Action": [
              "kms:GenerateDataKey",
              "kms:Decrypt"
          ],
          "Resource": [
              "arn:aws:kms:${region}:${account-id}:key/${key-id}"
          ],
           "Condition": {
              "StringEquals": {
                  "aws:ResourceAccount": "${account-id}"
              }
          }
      }
      ```

# 使用提示管理器创建提示
<a name="prompt-management-create"></a>

创建提示时，您可以选择以下选项：
+ 编写提示消息，用作 FM 的输入以生成输出。
+ 使用双花括号在提示消息中包含一些变量（如 *\$1\$1variable\$1\$1*），这些变量可在调用提示时填充。
+ 选择要用于调用提示的模型；如果您计划将提示与代理结合使用，则无需指定模型。如果您选择模型，还可以修改要使用的推理配置。要查看不同模型的推理参数，请参阅[基础模型的推理请求参数和响应字段](model-parameters.md)。

所有提示都支持以下基本推理参数：
+ **MaxTokens** – 允许在生成的响应中使用的最大词元数。
+ **stopSequences** – 停止序列的列表。停止序列是一个字符序列，会使模型停止生成响应。
+ **temperature** – 模型在生成响应时选择更高概率选项的可能性。
+ **topP** – 模型为下一个词元考虑的最有可能的候选项所占百分比。

如果模型支持其他推理参数，则可以将它们指定为提示的*附加字段*。您可以在 JSON 对象中提供附加字段。以下示例展示了如何设置 `top_k`，该设置在 Anthropic Claude 模型中可用，但不是基本推理参数。

```
{
    "top_k": 200
}
```

有关模型推理参数的信息，请参阅[基础模型的推理请求参数和响应字段](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html)。

将基本推理参数设置为附加字段不会覆盖您在控制台中设置的值。

如果为提示选择的模型支持 [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) API（有关更多信息，请参阅[使用 Converse API 操作进行对话](conversation-inference.md)），则可以在构造提示时添加以下内容：
+ 用于向模型提供指令或上下文的系统提示。
+ 作为对话历史记录的先前提示（用户消息）和模型响应（助手消息），供模型在为最终用户消息生成响应时参考。
+ （如果模型支持）模型在生成响应时使用的[工具](tool-use.md)。
+ （如果模型支持）使用[提示缓存](prompt-caching.md)，通过缓存大型或常用提示来降低成本。根据模型，您可以缓存系统指令、工具和消息（用户和助手）。如果您的提示前缀总数达到了模型所需的最小词元数，则提示缓存会为提示创建缓存检查点。在提示中遇到已更改的变量时，提示缓存会创建一个新的缓存检查点（在输入词元的数量达到模型所需的最小值时）。

要了解如何使用提示管理器创建提示，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ Console ]

**创建提示**

1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后，通过以下网址打开 Amazon Bedrock 控制台：[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 从左侧导航窗格中选择**提示管理器**。然后，选择**创建提示**。

1. 为提示提供名称和可选描述。

1. 要使用客户自主管理型密钥加密提示，请在 **KMS 密钥选择**部分选择**自定义加密设置（高级）**。如果您忽略此字段，提示将使用 AWS 托管式密钥进行加密。有关更多信息，请参阅 [AWS KMS 密钥](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)。

1. 选择**创建提示**。提示已创建，您将进入新创建的提示的**提示生成器**，您可以在其中配置提示。

1. 您可以继续执行以下流程来配置提示，也可以稍后返回提示生成器。

**配置提示**

1. 如果您尚未进入提示生成器，请执行以下操作：

   1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后，通过以下网址打开 Amazon Bedrock 控制台：[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

   1. 从左侧导航窗格中选择**提示管理器**。然后，在**提示**部分中选择一个提示。

   1. 在**提示草稿**部分中，选择**在提示生成器中编辑**。

1. 使用**提示**窗格来构造提示。在最后一个**用户消息**框中输入提示。如果模型支持 [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) API 或 [AnthropicClaude 消息 API](model-parameters-anthropic-claude-messages.md)，您还可以添加**系统提示**以及之前的**用户消息**和**助手消息**以提供上下文。

   在编写提示时，您可以用双花括号将变量括起（如 *\$1\$1variable\$1\$1*）。您添加的每个变量都显示在**测试变量**部分中。

1. （可选）您可以通过以下方式修改提示：
   + 在**配置**窗格中，执行以下操作：

     1. 选择用于运行推理的**生成式人工智能资源**。
**注意**  
如果您选择了代理，则只能在控制台中测试提示。要了解如何在 API 中使用代理测试提示，请参阅[使用提示管理器测试提示](prompt-management-test.md)。

     1. 在**推理参数**中，设置要使用的推理参数。

     1. 如果模型支持[推理](inference-reasoning.md)，请开启**推理**，在模型的响应中包含其推理过程。在**推理词元**中，您可以配置模型能够使用的推理词元的数量。

     1. 在**其他模型请求字段**中，选择**配置**以指定除**推理参数**中的参数之外的推理参数。

     1. 如果您选择的模型支持工具，请选择**配置工具**，将工具与提示结合使用。

     1. 如果您选择的模型支持[提示缓存](prompt-caching.md)，请选择以下选项之一（可用性因模型而异）：
        + **无**：不进行任何提示缓存。
        + **工具**：仅缓存提示中的工具。
        + **工具、系统指令**：缓存提示中的工具和系统指令。
        + **工具、系统指令和消息**：缓存提示中的工具、系统指令和消息（用户和助手）。
   + 要比较提示的不同变体，请选择**比较变体**。您可以在比较页面上执行以下操作：
     + 要添加变体，请选择加号。您最多可以添加三个变体。
     + 指定变体的详细信息后，您可以指定任何**测试变量**并选择**运行**来测试变体的输出。
     + 要删除变体，请选择三个点，然后选择**从比较中删除**。
     + 要替换工作草稿并退出比较模式，请选择**另存为草稿**。所有其他变体都将被删除。
     + 要退出比较模式，请选择**退出比较模式**。

1. 完成提示配置后，您可以选择以下选项：
   + 要保存提示，请选择**保存草稿**。有关草稿版本的更多信息，请参阅[使用提示管理器中的版本将提示部署到应用程序](prompt-management-deploy.md)。
   + 要删除提示，请选择**删除**。有关更多信息，请参阅 [在提示管理器中删除提示](prompt-management-delete.md)。
   + 要创建提示版本，请选择**创建版本**。有关提示版本控制的更多信息，请参阅[使用提示管理器中的版本将提示部署到应用程序](prompt-management-deploy.md)。

------
#### [ API ]

要创建提示，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [CreatePrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreatePrompt.html) 请求。

以下字段是必填字段：


****  

| 字段 | 简要描述 | 
| --- | --- | 
| 名称 | 提示的名称。 | 
| variants | 提示的不同配置列表（见下文）。 | 
| defaultVariant | 默认变体的名称。 | 

`variants` 列表中的每个变体都是具有以下一般结构的 [PromptVariant](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptVariant.html) 对象：

```
{
        "name": "string",
        # modelId or genAiResource (see below)
        "templateType": "TEXT",
        "templateConfiguration": # see below,
        "inferenceConfiguration": {
            "text": {
                "maxTokens": int,
                "stopSequences": ["string", ...],
                "temperature": float,
                "topP": float
            }
        },
        "additionalModelRequestFields": {
            "key": "value",
            ...
        },
        "metadata": [
            {
                "key": "string",
                "value": "string"
            },
            ...
        ]
}
```

按如下所示填写各字段：
+ name – 输入变体的名称。
+ 根据要使用的模型调用资源，提供以下字段之一：
  + modelId：要指定要与提示一起使用的[基础模型](models-supported.md)或[推理配置文件](cross-region-inference.md)，请输入其 ARN 或 ID。
  + genAiResource：要指定[代理](agents.md)，请输入其 ID 或 ARN。`genAiResource` 的值是格式如下的 JSON 对象：

    ```
    {
        "genAiResource": {
        "agent": {
            "agentIdentifier": "string"
        }   
    }
    ```
**注意**  
如果您添加了 `genAiResource` 字段，则只能在控制台中测试提示。要在 API 中使用代理测试提示，您必须直接将提示文本输入到 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) 请求的 `inputText` 字段。
+ templateType：输入 `TEXT` 或 `CHAT`。`CHAT` 仅兼容支持 [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) API 的模型。如果要使用提示缓存，则必须使用 `CHAT` 模板类型。
+ templateConfiguration：该值取决于您指定的模板类型：
  + 如果您指定 `TEXT` 作为模板类型，该值应该为 [TextPromptTemplateConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_TextPromptTemplateConfiguration.html.html) JSON 对象。
  + 如果您指定了 `CHAT` 作为模板类型，该值应该为 [ChatPromptTemplateConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ChatPromptTemplateConfiguration.html.html) JSON 对象。
+ inferenceConfiguration – `text` 字段映射到 [PromptModelInferenceConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_PromptModelInferenceConfiguration.html.html)。此字段包含所有模型通用的推理参数。要了解有关推理参数的更多信息，请参阅[利用推理参数影响响应生成](inference-parameters.md)。
+ additionalModelRequestFields：使用此字段可指定特定于运行推理所用模型的推理参数。要详细了解特定于模型的推理参数，请参阅[基础模型的推理请求参数和响应字段](model-parameters.md)。
+ metadata – 要与提示变体关联的元数据。您可以将键值对附加到数组，以使用元数据标记提示变体。

以下字段是可选字段：


****  

| 字段 | 应用场景 | 
| --- | --- | 
| description | 为提示提供描述。 | 
| clientToken | 用于确保 API 请求仅完成一次。有关更多信息，请参阅[确保幂等性](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html)。 | 
| tags | 将标签与流相关联。有关更多信息，请参阅 [标记 Amazon Bedrock 资源](tagging.md)。 | 

响应将创建一个 `DRAFT` 版本并返回一个 ID 和 ARN，您可以将其用作其他与提示相关的 API 请求的提示标识符。

------

# 使用提示管理器查看提示相关信息
<a name="prompt-management-view"></a>

要了解如何使用提示管理器查看有关提示的信息，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ Console ]

**查看有关提示的信息**

1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后，通过以下网址打开 Amazon Bedrock 控制台：[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 从左侧导航窗格中选择**提示管理器**。然后，在**提示**部分中选择一个提示。

1. **提示详细信息**页面包含以下部分：
   + **概述** – 包含有关提示及其创建时间和上次更新时间的一般信息。
   + **提示草稿** – 包含上次保存的提示版本草稿的提示消息和配置。
   + **提示版本** – 已创建的提示的所有版本的列表。有关提示版本的更多信息，请参阅[使用提示管理器中的版本将提示部署到应用程序](prompt-management-deploy.md)。

------
#### [ API ]

要获取有关提示的信息，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [GetPrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetPrompt.html) 请求，并指定提示的 ARN 或 ID 作为 `promptIdentifier`。要获取有关特定提示版本的信息，请在 `promptVersion` 字段中指定 `DRAFT` 或版本号。

要列出关于您的代理的信息，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [ListPrompts](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListPrompts.html) 请求。您可以指定以下可选参数：


****  

| 字段 | 简短描述 | 
| --- | --- | 
| maxResults | 要在响应中返回的结果数量上限。 | 
| nextToken | 如果结果的数量多于您在 maxResults 字段中指定的数量，响应会返回一个 nextToken 值。要查看下一批结果，请在另一个请求中发送 nextToken 值。 | 

------

# 使用提示管理器修改提示
<a name="prompt-management-modify"></a>

要了解如何使用提示管理器修改提示，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ Console ]

**修改提示**

1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后，通过以下网址打开 Amazon Bedrock 控制台：[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 从左侧导航窗格中选择**提示管理器**。然后，在**提示**部分中选择一个提示。

1. 要编辑提示的**名称**或**描述**，请在**概述**部分中选择**编辑**。编辑完毕后，选择**保存**。

1. 要修改提示及其配置，请选择**在提示生成器中编辑**

1. 要了解提示中可以修改的部分，请参阅[使用提示管理器创建提示](prompt-management-create.md)。

------
#### [ API ]

要编辑提示，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [UpdatePrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdatePrompt.html) 请求。既要包含要维护的字段，也要包含要更改的字段。

------

# 使用提示管理器测试提示
<a name="prompt-management-test"></a>

要了解如何测试在提示管理器中创建的提示，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ Console ]

**在提示管理器中测试提示**

1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后，通过以下网址打开 Amazon Bedrock 控制台：[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 从左侧导航窗格中选择**提示管理器**。然后，在**提示**部分中选择一个提示。

1. 在**提示草稿**部分中选择**在提示生成器中编辑**，或者在**版本**部分中选择提示的版本。

1. （可选）要在提示中为变量提供值，您需要先在**配置**窗格中选择一个模型。然后，在**测试变量**窗格中为每个变量输入**测试值**。
**注意**  
这些测试值是临时的，如果您保存提示，则不会保存这些值。

1. 要测试提示，请在**测试窗口**窗格中选择**运行**。

1. 修改提示或其配置，然后根据需要再次运行提示。如果您对提示感到满意，可以选择**创建版本**来创建可在生产环境中使用的提示快照。有关更多信息，请参阅 [使用提示管理器中的版本将提示部署到应用程序](prompt-management-deploy.md)。

您也可以通过以下方式测试提示：
+ 要测试流中的提示，请在流中添加提示节点。有关更多信息，请参阅[在 Amazon Bedrock 中创建和设计流](flows-create.md)和[流的节点类型](flows-nodes.md)。
+ 如果没有为提示配置代理，您仍然可以通过在测试代理时导入提示，来使用代理测试提示。有关更多信息，请参阅 [测试代理行为并进行问题排查](agents-test.md)。

------
#### [ API ]

您可以通过以下方式测试提示：
+ 要对提示进行推理，请使用 [Amazon Bedrock 运行时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt)发送 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)、[Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) 或 [ConverseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStream.html) 请求，并在 `modelId` 参数中指定提示的 ARN。
**注意**  
当您将提示管理器提示与 `Converse` 或 `ConverseStream` 结合使用时，以下限制适用：  
您不能包含 `additionalModelRequestFields`、`inferenceConfig`、`system` 或 `toolConfig` 字段。
如果您包含 `messages` 字段，则消息将附加到在提示中定义的消息之后。
如果包含 `guardrailConfig` 字段，则护栏将应用于整个提示。如果您在 [ContentBlock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ContentBlock.html) 字段中包含 `guardContent` 内容块，则护栏将仅应用于这些内容块。
+ 要测试流中的提示，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [CreateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateFlow.html) 或 [UpdateFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateFlow.html) 请求，以创建或编辑流。在 `PromptNode` 类型的 Node.js 中添加适用于 JavaScript 的 SDK，并在 `promptArn` 字段中提供提示的 ARN。然后，使用 [Amazon Bedrock 代理运行时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)发送 [InvokeFlow](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeFlow.html) 请求。有关更多信息，请参阅[在 Amazon Bedrock 中创建和设计流](flows-create.md)和[流的节点类型](flows-nodes.md)。
+ 要使用代理测试提示，请使用 Amazon Bedrock 控制台（请参阅**控制台**选项卡），或将提示文本输入到 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) 请求的 `inputText` 字段。

------

# 优化提示
<a name="prompt-management-optimize"></a>

Amazon Bedrock 提供了一种用于优化提示的工具。优化过程会重写提示，来生成更适合您的使用案例的推理结果。您可以选择要为其优化提示的模型，然后生成修改后的提示。

在您提交提示进行优化后，Amazon Bedrock 会分析提示的组成部分。如果分析成功，它会重写提示。您随后可以复制并使用优化后的提示的文本。

**注意**  
为了获得最佳效果，建议使用英语优化提示。

**Topics**
+ [提示优化支持的区域和模型](#prompt-management-optimize-supported)
+ [提交提示进行优化](#prompt-management-optimize-submit)

## 提示优化支持的区域和模型
<a name="prompt-management-optimize-supported"></a>

下表显示了模型对提示优化的支持：


| Provider | 模型 | 模型 ID | 支持单区域模型 | 
| --- | --- | --- | --- | 
| Amazon | Nova Lite | 亚马逊。 nova-lite-v1:0 |  ap-southeast-2 eu-west-2 us-east-1  | 
| Amazon | Nova Micro | 亚马逊。 nova-micro-v1:0 |  ap-southeast-2 eu-west-2 us-east-1  | 
| Amazon | Nova Premier | 亚马逊。 nova-premier-v1:0 |  | 
| Amazon | Nova Pro | 亚马逊。 nova-pro-v1:0 |  ap-southeast-2 eu-west-2 us-east-1  | 
| Anthropic | Claude 3 Haiku | anthropic.claude-3-haiku-20240307-v1:0 |  ap-south-1 ap-southeast-2 ca-central-1 eu-central-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us-east-1 us-west-2  | 
| Anthropic | Claude 3 Opus | anthropic.claude-3-opus-20240229-v 1:0 |  | 
| Anthropic | Claude 3 Sonnet | anthropic.claude-3-sonnet-20240229-v1:0 |  ap-south-1 ap-southeast-2 ca-central-1 eu-central-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us-east-1 us-west-2  | 
| Anthropic | Claude 3.5 Haiku | anthropic.claude-3-5-haiku-20241022-v1:0 |  us-west-2  | 
| Anthropic | Claude 3.5 Sonnet | anthropic.claude-3-5-sonnet-20240620-v1:0 |  eu-central-1 us-east-1 us-west-2  | 
| Anthropic | Claude 3.5 Sonnet v2 | anthropic.claude-3-5-sonnet-20241022-v2:0 |  ap-southeast-2 us-west-2  | 
| Anthropic | Claude 3.7 Sonnet | anthropic.claude-3-7-sonnet-20250219-v1:0 |  eu-west-2  | 
| Anthropic | Claude Opus 4 | anthropic.claude-opus-4-20250514-v1:0 |  | 
| Anthropic | Claude Sonnet 4 | anthropic.claude-sonnet-4-20250514-v1:0 |  | 
| DeepSeek | DeepSeek-R1 | deepseek.r1-v1:0 |  | 
| Meta | Llama 3 70B Instruct | meta.llama3-70 1:0 b-instruct-v |  ap-south-1 ca-central-1 eu-west-2 us-east-1 us-west-2  | 
| Meta | Llama 3.1 70B Instruct | meta.llama3-1-70 1:0 b-instruct-v |  us-west-2  | 
| Meta | Llama 3.2 11B Instruct | meta.llama3-2-11 1:0 b-instruct-v |  | 
| Meta | Llama 3.3 70B Instruct | meta.llama3-3-70 1:0 b-instruct-v |  | 
| Meta | Llama 4 Maverick 17B Instruct | meta.llama4-maverick b-instruct-v -17 1:0 |  | 
| Meta | Llama 4 Scout 17B Instruct | meta.llama4-scout b-instruct-v -17 1:0 |  | 
| Mistral AI | Mistral Large（24.02） | mistral.mistral-large-2402-v1:0 |  ap-south-1 ap-southeast-2 ca-central-1 eu-west-1 eu-west-2 eu-west-3 sa-east-1 us-east-1 us-west-2  | 
| Mistral AI | Mistral Large（24.07） | mistral.mistral-large-2407-v1:0 |  us-west-2  | 

## 提交提示进行优化
<a name="prompt-management-optimize-submit"></a>

要了解如何优化提示，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ Console ]

您可以在 AWS 管理控制台中使用演练场或提示管理器来优化提示。您必须先选择模型，然后才能优化提示。提示针对您选择的模型进行优化。

**在演练场中优化提示**

1. 要了解如何在 Amazon Bedrock 演练场中编写提示，请按照[使用操场在控制台中生成响应](playgrounds.md)中的步骤操作。

1. 在编写提示并选择模型后，请选择魔杖图标（![\[Sparkle icon representing cleaning or refreshing functionality.\]](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/wand.png)）。此时会打开**优化提示**对话框，Amazon Bedrock 将开始优化提示。

1. Amazon Bedrock 完成对提示的分析和优化后，您可以在对话框中将原始提示与优化后的提示并排比较。

1. 要在演练场中将您的提示替换为经过优化的提示，请选择**使用优化提示**。要保留原始提示，请选择**取消**。

1. 要提交提示并生成响应，请选择**运行**。

**在提示管理器中优化提示**

1. 要了解如何使用提示管理器编写提示，请按照[使用提示管理器创建提示](prompt-management-create.md)中的步骤操作。

1. 编写提示并选择模型后，选择**提示**框顶部的**（![\[Sparkle icon representing cleaning or refreshing functionality.\]](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/images/icons/wand.png)）优化**。

1. Amazon Bedrock 完成对提示的分析和优化后，优化后的提示将作为变体与原始提示并排显示。

1. 要使用优化后的提示而非原始提示，请选择**替换原始提示**。要保留原始提示，请选择**退出比较**，然后选择保存原始提示。
**注意**  
如果您在比较视图中有 3 个提示，并且您尝试优化另一个提示，系统会要求您覆盖并替换原始提示或其中一个变体。

1. 要提交提示并生成响应，请选择**运行**。

------
#### [ API ]

要优化提示，请使用[适用于 Amazon Bedrock 的代理运行时终端节点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)发送[OptimizePrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_OptimizePrompt.html)请求。在 `input` 对象中提供要优化的提示，并在 `targetModelId` 字段中指定要针对哪个模型进行优化。

响应流会返回以下事件：

1. [analyzePromptEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_AnalyzePromptEvent.html)— 在完成对提示的分析后出现。包含描述提示分析的消息。

1. [optimizedPromptEvent](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_OptimizedPromptEvent.html)— 在提示符完成重写后出现。包含优化后的提示。

运行以下示例代码以优化提示：

```
import boto3

# Set values here
TARGET_MODEL_ID = "anthropic.claude-3-sonnet-20240229-v1:0" # Model to optimize for. For model IDs, see https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html
PROMPT = "Please summarize this text: " # Prompt to optimize

def get_input(prompt):
    return {
        "textPrompt": {
            "text": prompt
        }
    }
 
def handle_response_stream(response):
    try:
        event_stream = response['optimizedPrompt']
        for event in event_stream:
            if 'optimizedPromptEvent' in event:
                print("========================== OPTIMIZED PROMPT ======================\n")
                optimized_prompt = event['optimizedPromptEvent']
                print(optimized_prompt)
            else:
                print("========================= ANALYZE PROMPT =======================\n")
                analyze_prompt = event['analyzePromptEvent']
                print(analyze_prompt)
    except Exception as e:
        raise e
 
 
if __name__ == '__main__':
    client = boto3.client('bedrock-agent-runtime')
    try:
        response = client.optimize_prompt(
            input=get_input(PROMPT),
            targetModelId=TARGET_MODEL_ID
        )
        print("Request ID:", response.get("ResponseMetadata").get("RequestId"))
        print("========================== INPUT PROMPT ======================\n")
        print(PROMPT)
        handle_response_stream(response)
    except Exception as e:
        raise e
```

------

# 使用提示管理器中的版本将提示部署到应用程序
<a name="prompt-management-deploy"></a>

当您保存提示时，它的*草稿版本*将随即创建。您可以通过修改提示及其配置并保存来继续迭代草稿版本。

当您准备好将提示部署到生产环境时，可以创建一个提示版本以在应用程序中使用。版本是您在迭代提示的工作草稿过程中的某个时间点创建的提示快照。确认一系列配置正确无误后，您就可以创建提示的版本。版本可让您在提示的不同配置之间轻松切换，并使用最适合您应用场景的版本更新应用程序。

**Topics**
+ [在提示管理器中创建提示版本](prompt-management-version-create.md)
+ [在提示管理器中查看提示版本相关信息](prompt-management-version-view.md)
+ [在提示管理器中比较提示版本](prompt-management-version-compare.md)
+ [在提示管理器中删除提示版本](prompt-management-version-delete.md)

# 在提示管理器中创建提示版本
<a name="prompt-management-version-create"></a>

要了解如何创建提示的版本，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ Console ]

如果您在提示生成器中，可以通过选择**创建版本**来创建提示版本。否则请执行以下操作：

**创建提示版本**

1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后，通过以下网址打开 Amazon Bedrock 控制台：[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 从左侧导航窗格中选择**提示管理器**。然后，在**提示**部分中选择一个提示。

1. 在**提示版本**部分中，选择**创建版本**以拍摄草稿版本的快照。

------
#### [ API ]

要创建提示的版本，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [CreatePromptVersion](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreatePromptVersion.html) 请求，并指定提示的 ARN 或 ID 作为 `promptIdentifier`。

响应会返回该版本的 ID 和 ARN。版本会从 1 开始按增量方式创建。

------

# 在提示管理器中查看提示版本相关信息
<a name="prompt-management-version-view"></a>

要了解如何查看有关提示版本的信息，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ Console ]

**查看有关提示版本的信息**

1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后，通过以下网址打开 Amazon Bedrock 控制台：[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 从左侧导航窗格中选择**提示管理器**。然后，在**提示**部分中选择一个提示。

1. 在**提示版本**部分中，选择一个版本。

1. 在**版本详细信息**页面中，您可以看到有关版本、提示消息及其配置的信息。有关测试提示版本的更多信息，请参阅[使用提示管理器测试提示](prompt-management-test.md)。

------
#### [ API ]

要获取有关提示版本的信息，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [GetPrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetPrompt.html) 请求，并指定提示的 ARN 或 ID 作为 `promptIdentifier`。在 `promptVersion` 字段中，指定版本号。

------

# 在提示管理器中比较提示版本
<a name="prompt-management-version-compare"></a>

Amazon Bedrock 控制台提供了工具，用于比较在提示管理器中创建的提示的版本。该工具会突出显示在一个版本中存在但在另一个版本中不存在的字段。

**比较提示版本**

1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后，通过以下网址打开 Amazon Bedrock 控制台：[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 从左侧导航窗格中选择**提示管理器**。然后，在**提示**部分中选择一个提示。

1. 在**版本**部分中，选中要比较的两个提示旁边的复选框。

1. 选择 **Compare**。

1. 定义每个提示版本的 JSON 对象将并排显示。版本之间的差异如下所示：
   + 在一个版本中存在，但在另一个版本中不存在的字段将用加号（\$1）标记并以绿色突出显示。
   + 在一个版本中不存在，但在另一个版本中存在的字段将用减号（-）标记并以红色突出显示。

1. 要比较不同版本的输出模型响应，请填写**测试变量**并选择**运行提示**。

# 在提示管理器中删除提示版本
<a name="prompt-management-version-delete"></a>

要了解如何删除提示的版本，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ Console ]

**删除提示版本**

1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后，通过以下网址打开 Amazon Bedrock 控制台：[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 从左侧导航窗格中选择**提示管理器**。然后，在**提示**部分中选择一个提示。

1. 在**提示版本**部分中，选择一个版本并选择**删除**。

1. 在**版本详细信息**页面中，您可以看到有关版本、提示消息及其配置的信息。有关测试提示版本的更多信息，请参阅[使用提示管理器测试提示](prompt-management-test.md)。

1. 查看出现的警告，键入**确认**，然后选择**删除**。

------
#### [ API ]

要删除提示的版本，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [DeletePrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeletePrompt.html) 请求，并指定提示的 ARN 或 ID 作为 `promptIdentifier`。在 `promptVersion` 字段中，指定要删除的版本号。

------

# 在提示管理器中删除提示
<a name="prompt-management-delete"></a>

如果您不再需要某个提示，可以删除它。您删除的提示将在 AWS 服务器中保留最多 14 天。要了解如何使用提示管理器删除提示，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

------
#### [ Console ]

如果您在提示的**提示详细信息**页面中或在提示生成器中，请选择**删除**以删除提示。

**注意**  
如果您删除提示，其所有版本也都将被删除。使用提示的任何资源都可能会遇到运行时错误。请务必取消提示与任何使用它的资源的关联。

**删除提示**

1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后，通过以下网址打开 Amazon Bedrock 控制台：[https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)。

1. 从左侧导航窗格中选择**提示管理器**。

1. 选择提示，然后选择**删除**。

1. 查看出现的警告，键入**确认**，然后选择**删除**。

------
#### [ API ]

要删除提示，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [DeletePrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeletePrompt.html) 请求，并指定提示的 ARN 或 ID 作为 `promptIdentifier`。要删除特定提示版本，请在 `promptVersion` 字段中指定版本号。

------

# 运行提示管理器示例代码
<a name="prompt-management-code-ex"></a>

要试用一些用于提示管理器的示例代码，请选择与您的首选方法对应的选项卡，然后按照以下步骤操作。以下示例代码假设您已设置凭证，可以使用 AWS API。如果您尚未设置，请参阅 [开始使用 API](getting-started-api.md)。

------
#### [ Python ]

1. 运行以下代码段以发出 [CreatePrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreatePrompt.html) [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)，加载适用于 Python (Boto3) 的 AWS SDK，创建客户端，然后使用两个变量（`genre` 和 `number`）创建用于创建音乐播放列表的提示：

   ```
   # Create a prompt in Prompt management
   import boto3
   
   # Create an Amazon Bedrock Agents client
   client = boto3.client(service_name="bedrock-agent")
   
   # Create the prompt
   response = client.create_prompt(
       name="MakePlaylist",
       description="My first prompt.",
       variants=[
           { 
               "name": "Variant1",
               "modelId": "amazon.titan-text-express-v1",
               "templateType": "TEXT",
               "inferenceConfiguration": {
                   "text": {
                       "temperature": 0.8
                   }
               },
               "templateConfiguration": { 
                   "text": {
                       "text": "Make me a {{genre}} playlist consisting of the following number of songs: {{number}}."
                   }
               }
         }
       ]
   )
                           
   prompt_id = response.get("id")
   ```

1. 运行以下代码段以发出 [ListPrompts](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListPrompts.html) [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)，查看您刚刚创建的提示（以及您账户中的任何其他提示）：

   ```
   # List prompts that you've created
   client.list_prompts()
   ```

1. 您应该在 `promptSummaries` 字段中的对象中的 `id` 字段中看到您创建的提示的 ID。运行以下代码段以发出 [GetPrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetPrompt.html) [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)，显示您创建的提示的信息：

   ```
   # Get information about the prompt that you created
   client.get_prompt(promptIdentifier=prompt_id)
   ```

1. 运行以下代码段以发出 [CreatePromptVersion](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreatePromptVersion.html) [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)，创建提示版本并获取其 ID：

   ```
   # Create a version of the prompt that you created
   response = client.create_prompt_version(promptIdentifier=prompt_id)
                           
   prompt_version = response.get("version")
   prompt_version_arn = response.get("arn")
   ```

1. 运行以下代码段以发出 [ListPrompts](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ListPrompts.html) [Amazon Bedrock 代理运行时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)，查看有关您刚刚创建的提示版本的信息以及有关草稿版本的信息：

   ```
   # List versions of the prompt that you just created
   client.list_prompts(promptIdentifier=prompt_id)
   ```

1. 运行以下代码段以发出 [GetPrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetPrompt.html) [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)，查看您刚刚创建的提示版本的信息：

   ```
   # Get information about the prompt version that you created
   client.get_prompt(
       promptIdentifier=prompt_id, 
       promptVersion=prompt_version
   )
   ```

1. 按照[运行 Amazon Bedrock 流代码示例](flows-code-ex.md)中的步骤将提示添加到流来测试提示。在创建流的第一步中，请改为运行以下代码段以使用您创建的提示，而不是在流中定义内联提示（将 `promptARN` 字段中提示版本的 ARN 替换为您创建的提示版本的 ARN）：

   ```
   # Import Python SDK and create client
   import boto3
   
   client = boto3.client(service_name='bedrock-agent')
   
   FLOWS_SERVICE_ROLE = "arn:aws:iam::123456789012:role/MyPromptFlowsRole" # Flows service role that you created. For more information, see https://docs.aws.amazon.com/bedrock/latest/userguide/flows-permissions.html
   PROMPT_ARN = prompt_version_arn # ARN of the prompt that you created, retrieved programatically during creation.
   
   # Define each node
   
   # The input node validates that the content of the InvokeFlow request is a JSON object.
   input_node = {
       "type": "Input",
       "name": "FlowInput",
       "outputs": [
           {
               "name": "document",
               "type": "Object"
           }
       ]
   }
   
   # This prompt node contains a prompt that you defined in Prompt management.
   # It validates that the input is a JSON object that minimally contains the fields "genre" and "number", which it will map to the prompt variables.
   # The output must be named "modelCompletion" and be of the type "String".
   prompt_node = {
       "type": "Prompt",
       "name": "MakePlaylist",
       "configuration": {
           "prompt": {
               "sourceConfiguration": {
                   "resource": {
                       "promptArn": ""
                   }
               }
           }
       },
       "inputs": [
           {
               "name": "genre",
               "type": "String",
               "expression": "$.data.genre"
           },
           {
               "name": "number",
               "type": "Number",
               "expression": "$.data.number"
           }
       ],
       "outputs": [
           {
               "name": "modelCompletion",
               "type": "String"
           }
       ]
   }
   
   # The output node validates that the output from the last node is a string and returns it as is. The name must be "document".
   output_node = {
       "type": "Output",
       "name": "FlowOutput",
       "inputs": [
           {
               "name": "document",
               "type": "String",
               "expression": "$.data"
           }
       ]
   }
   
   # Create connections between the nodes
   connections = []
   
   #   First, create connections between the output of the flow input node and each input of the prompt node
   for input in prompt_node["inputs"]:
       connections.append(
           {
               "name": "_".join([input_node["name"], prompt_node["name"], input["name"]]),
               "source": input_node["name"],
               "target": prompt_node["name"],
               "type": "Data",
               "configuration": {
                   "data": {
                       "sourceOutput": input_node["outputs"][0]["name"],
                       "targetInput": input["name"]
                   }
               }
           }
       )
   
   # Then, create a connection between the output of the prompt node and the input of the flow output node
   connections.append(
       {
           "name": "_".join([prompt_node["name"], output_node["name"]]),
           "source": prompt_node["name"],
           "target": output_node["name"],
           "type": "Data",
           "configuration": {
               "data": {
                   "sourceOutput": prompt_node["outputs"][0]["name"],
                   "targetInput": output_node["inputs"][0]["name"]
               }
           }
       }
   )
   
   # Create the flow from the nodes and connections
   client.create_flow(
       name="FlowCreatePlaylist",
       description="A flow that creates a playlist given a genre and number of songs to include in the playlist.",
       executionRoleArn=FLOWS_SERVICE_ROLE,
       definition={
           "nodes": [input_node, prompt_node, output_node],
           "connections": connections
       }
   )
   ```

1. 运行以下代码段以发出 [DeletePrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeletePrompt.html) [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)，删除您刚刚创建的提示版本：

   ```
   # Delete the prompt version that you created
   client.delete_prompt(
       promptIdentifier=prompt_id, 
       promptVersion=prompt_version
   )
   ```

1. 运行以下代码段以发出 [DeletePrompt](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DeletePrompt.html) [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)，完全删除您刚刚创建的提示：

   ```
   # Delete the prompt that you created
   client.delete_prompt(
       promptIdentifier=prompt_id
   )
   ```

------