

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

# 最佳化提示
<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
```

------