

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Amazon Bedrock 中使用提示管理來建構和存放可重複使用的提示
<a name="prompt-management"></a>

Amazon Bedrock 讓您能夠使用提示管理建立和儲存自己的提示，以便透過將相同的提示套用至不同的工作流程來節省時間。建立提示時，您可以選取要對其執行推論的模型，並修改要使用的推論參數。您可以在提示中包含變數，以針對不同使用案例調整提示。

當您測試提示時，您可以選擇比較提示的不同變體，然後選擇會產生最適合使用案例之輸出的變體。在提示上反覆運算時，您可以儲存其版本。您可以在 [Amazon Bedrock Flows](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) 僅適用於來自提示管理的提示，其組態指定 Anthropic Claude 或 Meta Llama 模型。

# 提示管理先決條件
<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 使用金鑰加密和解密提示，並視需要取代*值*。政策包含 `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)中的步驟，並將下列政策連接至提示管理角色，視需要取代*值*，以允許其針對提示產生和解密客戶受管金鑰。政策包含 `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 物件中提供其他欄位。下列範例說明如何設定可在 Anthropic Claude 模型中使用，但不是基本推論參數的 `top_k`。

```
{
    "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 管理主控台。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon 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 管理主控台。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

   1. 從左側導覽窗格中選取**提示管理**。然後，在**提示**區段中選擇一個提示。

   1. 在**提示草稿**區段中，選擇**在提示生成器中編輯**。

1. 使用**提示**窗格來建構提示。在最後一個**使用者訊息**方塊中輸入提示。如果模型支援 [Converse API](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) 或 [AnthropicClaude Messages API](model-parameters-anthropic-claude-messages.md)，您也可以包含**系統提示**和先前的**使用者訊息**，以及內容的**助理訊息**。

   當您撰寫提示時，您可以使用雙大括弧括住變數 (如 *\$1\$1variable\$1\$1*)。每個括住的變數都會出現在**測試變數**區段中。

1. (選用) 您可以透過以下方式修改提示：
   + 在**組態**窗格中，執行下列操作：

     1. 選擇用於執行推論的**生成式 AI 資源**。
**注意**  
如果您選擇代理程式，您只能在主控台中測試提示。若要了解如何在 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) 請求。

下列是必要欄位：


****  

| 欄位 | 簡短描述 | 
| --- | --- | 
| name | 提示名稱。 | 
| 變體 | 提示的不同組態清單 (請參閱下方)。 | 
| 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 – 要與提示變體建立關聯的中繼資料。您可以將鍵/值對附加到陣列，以使用中繼資料標記提示變體。

以下是選填欄位：


****  

| 欄位 | 使用案例 | 
| --- | --- | 
| 描述 | 提供提示的描述。 | 
| clientToken | 為確保 API 請求，僅完成一次。如需詳細資訊，請參閱[確保冪等性](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html)。 | 
| 標籤 | 將標籤與流程建立關聯。如需詳細資訊，請參閱 [標記 Amazon Bedrock 資源](tagging.md)。 | 

回應會建立 `DRAFT` 版本，並傳回 ID 和 ARN，您可以將其做為其他提示相關 API 請求的提示識別碼。

------

# 使用提示管理檢視提示的相關資訊
<a name="prompt-management-view"></a>

若要了解如何使用提示管理檢視提示的相關資訊，請選擇您偏好方法的索引標籤，然後遵循下列步驟：

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

**檢視提示的相關資訊**

1. 使用具有 Amazon Bedrock 主控台使用許可的 IAM 身分登入AWS 管理主控台。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon 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 管理主控台。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon 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 管理主控台。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon 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>

下表顯示對提示最佳化的模型支援：


| 供應商 | 模型 | 模型 ID | 單一區域模型支援 | 
| --- | --- | --- | --- | 
| Amazon | Nova Lite | amazon.nova-lite-v1:0 |  ap-southeast-2 eu-west-2 us-east-1  | 
| Amazon | Nova Micro | amazon.nova-micro-v1:0 |  ap-southeast-2 eu-west-2 us-east-1  | 
| Amazon | Nova Premier | amazon.nova-premier-v1:0 |  | 
| Amazon | Nova Pro | amazon.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-v1：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-70b-instruct-v1:0 |  ap-south-1 ca-central-1 eu-west-2 us-east-1 us-west-2  | 
| Meta | Llama 3.1 70B Instruct | meta.llama3-1-70b-instruct-v1:0 |  us-west-2  | 
| Meta | Llama 3.2 11B Instruct | meta.llama3-2-11b-instruct-v1:0 |  | 
| Meta | Llama 3.3 70B Instruct | meta.llama3-3-70b-instruct-v1:0 |  | 
| Meta | Llama 4 Maverick 17B Instruct | meta.llama4-maverick-17b-instruct-v1:0 |  | 
| Meta | Llama 4 Scout 17B Instruct | meta.llama4-scout-17b-instruct-v1: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_tw/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_tw/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 管理主控台。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon 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 管理主控台。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon 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 管理主控台。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

1. 從左側導覽窗格中選取**提示管理**。然後，在**提示**區段中選擇一個提示。

1. 在**版本**區段中，選取兩個要比較的提示旁邊的核取方塊。

1. 選擇 **Compare (比較)**。

1. 定義每個提示版本的 JSON 物件會並排顯示。版本之間的差異如下所示：
   + 存在於某個版本但不存在於另一個版本中的欄位會以加號 (＋) 符號標記，並以綠色反白顯示。
   + 不存在於某個版本但存在於另一個版本中的欄位會以減號 (-) 符號標記，並以紅色反白顯示。

1. 若要比較不同版本的輸出模型回應，請填入**測試變數**，然後選擇**執行提示**。

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

若要了解如何刪除提示的版本，請選擇您偏好方法的索引標籤，然後遵循下列步驟：

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

**刪除提示的版本**

1. 使用具有 Amazon Bedrock 主控台使用許可的 IAM 身分登入AWS 管理主控台。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

1. 從左側導覽窗格中選取**提示管理**。然後，在**提示**區段中選擇一個提示。

1. 在**提示版本**區段中，選取一個版本，然後選擇**刪除**。

1. 在**版本詳細資訊**頁面中，您可以看到版本、提示訊息及其組態的相關資訊。如需測試提示版本的詳細資訊，請參閱 [使用提示管理測試提示](prompt-management-test.md)。

1. 檢閱出現的警告，輸入 **confirm**，然後選擇**刪除**。

------
#### [ 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 伺服器中最多十四天。若要了解如何使用提示管理刪除提示，請選擇您偏好方法的索引標籤，然後遵循下列步驟：

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

如果您位於提示的**提示詳細資訊**頁面或提示生成器中，請選擇**刪除**以刪除提示。

**注意**  
如果您刪除提示，也會刪除其所有版本。使用您提示的任何資源都可能會發生執行時期錯誤。請記得要將提示與使用它的任何資源取消關聯。

**刪除提示**

1. 使用具有 Amazon Bedrock 主控台使用許可的 IAM 身分登入AWS 管理主控台。接著，開啟位於 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock) 的 Amazon Bedrock 主控台。

1. 從左側導覽窗格中選取**提示管理**。

1. 選取一個提示，然後選擇**刪除**。

1. 檢閱出現的警告，輸入 **confirm**，然後選擇**刪除**。

------
#### [ 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. 執行下列程式碼片段載入 適用於 Python (Boto3) 的 AWS SDK、建立用戶端，並透過產生 [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)建立一個提示，該提示會使用兩個變數 (`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
   )
   ```

------