

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

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

------